如题所述
第1个回答 2019-02-28
application.path
一般Excel路径中Microsoft字眼,
WPS有WPS的字眼追问
一般Excel路径中Microsoft字眼,
WPS有WPS的字眼追问
可以详细写出来吗,我是刚学,不会
追答application表示Excel或者WPS本身
然后获取它的安装路径啊
application.path
然后你就知道它是Excel还是WPS了
Excel和WPS的安装路径绝对是不同的,包含的字眼不一样。
再不懂的话,不懂怎么教了
第2个回答 2020-08-07
目前较通用的判断方式只用一行代码即可:
is_WPS = InStr(Replace(UCase(Application.Caption), UCase(Application.ActiveWorkbook.Name), ""), "WPS") > 0
在以下 3 个环境上实测通过, 未发现判断错误:
Excel 2016, WPS 表格 11.1.0.9912 (WPS 2019), WPS 表格 9.1.0.4472
以下是加了 3 行调试信息的检测函数:
Public Function is_WPS()
Debug.Print "Application.Build:" & vbCrLf & Application.Build
Debug.Print "Application.Caption:" & vbCrLf & Application.Caption
Debug.Print "Application.ActiveWorkbook.Name:" & vbCrLf & Application.ActiveWorkbook.Name
is_WPS = InStr(Replace(UCase(Application.Caption), UCase(Application.ActiveWorkbook.Name), ""), "WPS") > 0
End Function
在较低版 WPS 中,
Application.name
返回带有 "WPS" 字样
在WPS 2019 中,
Application.name,
ActiveWorkbook.Application.Value
都返回
Microsoft Excel
以下是在 各种环境下 立即窗口 的调试结果
运行环境: Excel 2016
运行显示:
?is_WPS
Application.Build:
13001
Application.Caption:
test.xlsm - Excel
Application.ActiveWorkbook.Name:
test.xlsm
False
运行环境: WPS 表格 11.1.0.9912 (WPS 2019)
运行显示:
?is_WPS
Application.Build:
9912
Application.Caption:
test.xlsm - WPS 表格
Application.ActiveWorkbook.Name:
test.xlsm
True
运行环境: WPS 表格 9.1.0.4472
运行显示:
?is_WPS
Application.Build:
9.1.0.4472
Application.Caption:
WPS 表格 - [test.xlsm *]
Application.ActiveWorkbook.Name:
test.xlsm
True
Application.Path 是不够可靠的, 如果你在安装 微软 Office 时在路径中用了 WPS 字样, 或者相反 的 在 安装 WPS 时在路径中 用了 microsoft 或者 excel 字样, 都会造成路径识别方式不可行
is_WPS = InStr(Replace(UCase(Application.Caption), UCase(Application.ActiveWorkbook.Name), ""), "WPS") > 0
在以下 3 个环境上实测通过, 未发现判断错误:
Excel 2016, WPS 表格 11.1.0.9912 (WPS 2019), WPS 表格 9.1.0.4472
以下是加了 3 行调试信息的检测函数:
Public Function is_WPS()
Debug.Print "Application.Build:" & vbCrLf & Application.Build
Debug.Print "Application.Caption:" & vbCrLf & Application.Caption
Debug.Print "Application.ActiveWorkbook.Name:" & vbCrLf & Application.ActiveWorkbook.Name
is_WPS = InStr(Replace(UCase(Application.Caption), UCase(Application.ActiveWorkbook.Name), ""), "WPS") > 0
End Function
在较低版 WPS 中,
Application.name
返回带有 "WPS" 字样
在WPS 2019 中,
Application.name,
ActiveWorkbook.Application.Value
都返回
Microsoft Excel
以下是在 各种环境下 立即窗口 的调试结果
运行环境: Excel 2016
运行显示:
?is_WPS
Application.Build:
13001
Application.Caption:
test.xlsm - Excel
Application.ActiveWorkbook.Name:
test.xlsm
False
运行环境: WPS 表格 11.1.0.9912 (WPS 2019)
运行显示:
?is_WPS
Application.Build:
9912
Application.Caption:
test.xlsm - WPS 表格
Application.ActiveWorkbook.Name:
test.xlsm
True
运行环境: WPS 表格 9.1.0.4472
运行显示:
?is_WPS
Application.Build:
9.1.0.4472
Application.Caption:
WPS 表格 - [test.xlsm *]
Application.ActiveWorkbook.Name:
test.xlsm
True
Application.Path 是不够可靠的, 如果你在安装 微软 Office 时在路径中用了 WPS 字样, 或者相反 的 在 安装 WPS 时在路径中 用了 microsoft 或者 excel 字样, 都会造成路径识别方式不可行