我正在尝试通过Excel VBA自动执行项目填写Excel工作表的例行任务。 Excel中的一列需要最新的Windows Update日期。 我写下面的子程序来实现同样的目的。
Sub windowsUpdate()
Dim windowShell
Dim regValue
Set WindowShell = CreateObject("WScript.shell")
regValue = WindowShell.regRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\Results\Install\LastSuccessTime")
WScript.echo "Updated date is : " & regValue
End Sub
有了这个,我得到两个类似于下面的错误。当试图执行相同的。
注册表项中的Root无效 " HKEY_LOCAL_MACHINE \ SOFTWARE \微软\的Windows \ CurrentVersion \ WindowsUpdate的\汽车 更新\结果\安装\ LastSuccessTime"
或
自动化错误:找不到指定的路径
我处于初始级别的Excel VBA,对上述两个错误的任何指导都会有很大的帮助。
答案 0 :(得分:3)
这意味着注册表项不存在。
使用以下功能检查密钥是否存在,如果是,请阅读。
Option Explicit
Sub WindowsUpdate()
Dim strKey As String
strKey = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\Results\Install\LastSuccessTime"
If RegKeyExists(strKey) Then
MsgBox "Value is: " & RegKeyRead(strKey), vbInformation
Else
MsgBox "Key does not exist.", vbCritical
End If
End Sub
'read an existing registry key
Function RegKeyRead(i_RegKey As String) As String
Dim myWS As Object
On Error Resume Next
Set myWS = CreateObject("WScript.Shell") 'access Windows scripting
RegKeyRead = myWS.RegRead(i_RegKey) 'read key from registry
End Function
'test if a registry key exists
Function RegKeyExists(i_RegKey As String) As Boolean
Dim myWS As Object
On Error GoTo ErrorHandler
Set myWS = CreateObject("WScript.Shell") 'access Windows scripting
myWS.RegRead i_RegKey 'try to read the registry key
RegKeyExists = True 'key was found
Exit Function
ErrorHandler:
'key was not found
RegKeyExists = False
End Function