【发布时间】:2015-04-27 12:07:36
【问题描述】:
所以我有一个宏,它可以做非常基本的事情,它就像一个魅力。 但是,当其他人尝试打开工作表并从他们的 PC 运行宏时,他们会收到错误“下标超出范围” 请帮忙,这让我发疯了(:@)
Sub Refresh()
MSG1 = MsgBox("Are you Connected to (XY) Network?", vbYesNo, "?")
If MSG1 = vbYes Then
MsgBox "Refresh in Progress"
Workbooks("Contact Center Dashboard").Worksheets("CONTACT TRACKER").Activate
ActiveSheet.Range("A4").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
'====================='
' Unlock Sheets '
'====================='
Workbooks("Contact Center Dashboard").Worksheets("SUMMARY").Unprotect Password:="nn"
Workbooks("Contact Center Dashboard").Worksheets("DETAILED").Unprotect Password:="nn"
Workbooks("Contact Center Dashboard").Worksheets("ANALYSIS").Unprotect Password:="nn"
'====================='
' Initialize '
'====================='
Dim ptc As PivotTable
'====================='
' Refreshing Dash - 1 '
'====================='
Set ptc = Workbooks("Contact Center Dashboard").Worksheets("SUMMARY").PivotTables("1. CALL SUMMARY - MAIN")
ptc.RefreshTable
'====================='
' Lock Sheet '
'====================='
Workbooks("Contact Center Dashboard").Worksheets("SUMMARY").Protect Password:="nn", AllowUsingPivotTables:=True
Workbooks("Contact Center Dashboard").Worksheets("DETAILED").Protect Password:="nn", AllowUsingPivotTables:=True
Workbooks("Contact Center Dashboard").Worksheets("ANALYSIS").Protect Password:="nn", AllowUsingPivotTables:=True
Workbooks("Contact Center Dashboard").Worksheets("SUMMARY").Activate
MsgBox "Dashboard Successfully Refresshed"
Else
MsgBox "You can still use the dashboard but the numbers will not be updated" & vbNewLine & vbNewLine & vbNewLine & "To get the latest update, do the following:" & vbNewLine & vbNewLine & "1- Please connect to XY local network or through VPN " & vbNewLine & "2- Click (REFRESH DATA)"
End If
End Sub
【问题讨论】:
-
错误出现在哪一行?当您尝试选择不存在的内容时,通常会出现此错误。问题可能是工作簿在另一台计算机上打开时具有不同的名称,导致
Workbooks("Contact Center Dashboard")选择器失败。 编辑看到您正在保护工作表,您是否禁止用户“选择锁定/解锁的单元格”?那可能是另一个原因。无论如何,请让我们知道宏在哪里崩溃。 -
我试过了,但它没有指向任何地方。只是一个错误框,仅此而已
-
“调试”按钮是否变灰?如果是,您的宏密码是否受到保护?如果是,请打开 VBA 编辑器,输入密码,让窗口保持打开状态,然后再次运行宏。现在 Debug 按钮应该可用了。如果这一切都失败了,那么其他计算机与您的计算机有何不同?我的意思是,他们的 Excel 环境有何不同?不同的文件名、权限、锁定/解锁/隐藏工作表?
-
我将工作表的名称更改为“activeworkbook”并且它有效。谢谢你的建议:)
-
我的意思是我在代码中更改工作表引用上的名称