Excel &引用;对象“U全局失败”的方法工作表;从工作簿\u打开事件调用宏时出错
启动此工作表时,出现“对象的方法工作表\u全局失败”错误。真正让我困惑的是,wc_user_update宏在未从工作簿_open事件调用时运行良好。此外,当我在工作簿打开事件中注释掉密码保护时,它仍然不起作用。因此,问题似乎在于如何从工作簿\u打开事件调用wc\u user\u update宏。我错过了什么明显的东西吗 此工作簿中的代码:Excel &引用;对象“U全局失败”的方法工作表;从工作簿\u打开事件调用宏时出错,excel,vba,Excel,Vba,启动此工作表时,出现“对象的方法工作表\u全局失败”错误。真正让我困惑的是,wc_user_update宏在未从工作簿_open事件调用时运行良好。此外,当我在工作簿打开事件中注释掉密码保护时,它仍然不起作用。因此,问题似乎在于如何从工作簿\u打开事件调用wc\u user\u update宏。我错过了什么明显的东西吗 此工作簿中的代码: Private Sub Workbook_Open() 'Dim ws As Worksheet 'For Each ws In Works
Private Sub Workbook_Open()
'Dim ws As Worksheet
'For Each ws In Worksheets
'ws.Protect password:="x", UserInterfaceOnly:=True
'Next ws
wc_user_update
End Sub
标准模块中的代码:
Public Sub wc_user_update()
'Ask user if he wants to update usernames. If yes, prompt for credentials
Dim update As Variant
'On Error GoTo ErrorHandler
With Worksheets("WC_USERS")
update = MsgBox("Usernames have not been updated in " & .Range("wc_names_last_updated_days").Value & " days. Would you like to update now?", vbYesNo)
End With
If update = vbYes Then
'show the windchill authentication userform centered in the excel window
With wc_auth
.StartUpPosition = 0
.Left = Application.Left + (0.5 * Application.Width) - (0.5 * .Width)
.Top = Application.Top + (0.5 * Application.Height) - (0.5 * .Height)
.Show
End With
'Do stuff
'update "last updated date" cell
Worksheets("WC_USERS").Range("wc_names_last_updated_date").Value = Date
Unload wc_auth
Else
MsgBox ("usernames not updating")
End If
ErrorHandler:
End Sub
看起来问题是我需要用这个工作簿限定工作表(“WC_用户”)。我还将变量名“update”改为“update\u choice”。它现在可以工作了