如何使用MS word 2007 vba检查窗口验证
我想检查不同组件上的窗口版本,以便在MS word 2007 vba上执行不同的任务。我尝试了在ms excel 2007 vba上应用的这段代码,该代码正在运行,但在ms word 2007 vba上没有如何使用MS word 2007 vba检查窗口验证,vba,ms-word,word-2007,Vba,Ms Word,Word 2007,我想检查不同组件上的窗口版本,以便在MS word 2007 vba上执行不同的任务。我尝试了在ms excel 2007 vba上应用的这段代码,该代码正在运行,但在ms word 2007 vba上没有 Dim TheOS As String Dim WinType As String TheOS = Application.OperatingSystem MsgBox ("TheOS ") 在ms word 2007 vba上,它返回一个编译错误:找不到方法或数据成员。我需要什么?如果希
Dim TheOS As String
Dim WinType As String
TheOS = Application.OperatingSystem
MsgBox ("TheOS ")
在ms word 2007 vba上,它返回一个编译错误:找不到方法或数据成员。我需要什么?如果希望vba代码可以在整个办公产品中使用,WMI是一种解决方案 Application.System.OperatingSystem的问题是,它不会返回任何有趣的内容 Application.System.Version可用。但是我使用WMI来提供正确的信息
Sub test()
Dim info As System
'Well everything is windows NT today..
Debug.Print Application.System.OperatingSystem
'Short version string MajorVersion.MinorVersion
Debug.Print Application.System.Version
Dim objWMI As Object
Dim objSystems As Object
Dim objOs As Object
Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set objSystems = objWMI.ExecQuery("Select * from Win32_OperatingSystem")
For Each objOs In objSystems
Debug.Print objOs.Name 'Full name as in OS startup screen
Debug.Print objOs.Caption ' Human readable name
Debug.Print objOs.Version ' the correct windows version string
Next
Set objOs = Nothing
Set objSystems = Nothing
Set objWMI = Nothing
End Sub
如果希望vba代码可以在整个办公产品中使用,WMI是一种解决方案 Application.System.OperatingSystem的问题是,它不会返回任何有趣的内容 Application.System.Version可用。但是我使用WMI来提供正确的信息
Sub test()
Dim info As System
'Well everything is windows NT today..
Debug.Print Application.System.OperatingSystem
'Short version string MajorVersion.MinorVersion
Debug.Print Application.System.Version
Dim objWMI As Object
Dim objSystems As Object
Dim objOs As Object
Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set objSystems = objWMI.ExecQuery("Select * from Win32_OperatingSystem")
For Each objOs In objSystems
Debug.Print objOs.Name 'Full name as in OS startup screen
Debug.Print objOs.Caption ' Human readable name
Debug.Print objOs.Version ' the correct windows version string
Next
Set objOs = Nothing
Set objSystems = Nothing
Set objWMI = Nothing
End Sub
这有点不清楚,所以请注意,返回的是Office版本,而不是Windows。例如,我使用的是64位windows,但我使用的是32位版本的office,因此返回了有关office使用内容的
windows(32位)NT 6.01
。在Word中,您可以通过Application.System.OperatingSystem
实现类似的效果。我在excel 2007 vba中使用上述编码,Windows xp上的结果是“Windows(32位)NT 5.01”和“Windows(32位)NT 6.01”,适用于Win7。这有点不清楚,因此请注意,返回的是Office版本而不是Windows。例如,我使用的是64位windows,但我使用的是32位版本的office,因此返回了有关office使用内容的windows(32位)NT 6.01
。在Word中,您可以通过Application.System.OperatingSystem
实现类似的效果。我在excel 2007 vba中使用上述编码,Windows xp上的结果是Win7的“Windows(32位)NT 5.01”和“Windows(32位)NT 6.01”。“Application.System.Version”是区分WinXP和Win7所需要的。。谢谢“Application.System.OperatingSystem”只在两个操作系统上返回“windownt”。。。英雄联盟奇怪的但是为什么“Application.OperatingSystem”在excel vba中工作,它返回我“Windows(32位)NT 5.01”(只是感到困惑)总是很乐意提供帮助,如果您认为我的答案就是答案,请将其标记为答案;)。或者自己回答,只显示你需要的部分。我们希望尽可能多地回答问题!“Application.System.Version”是区分WinXP和Win7所需要的。。谢谢“Application.System.OperatingSystem”只在两个操作系统上返回“windownt”。。。英雄联盟奇怪的但是为什么“Application.OperatingSystem”在excel vba中工作,它返回我“Windows(32位)NT 5.01”(只是感到困惑)总是很乐意提供帮助,如果您认为我的答案就是答案,请将其标记为答案;)。或者自己回答,只显示你需要的部分。我们希望尽可能多地回答问题!