【问题标题】:subscript out of range excel vba下标超出范围excel vba
【发布时间】: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”并且它有效。谢谢你的建议:)
  • 我的意思是我在代码中更改工作表引用上的名称

标签: excel vba subscript


【解决方案1】:

这是最终的工作脚本,以备将来有人遇到类似问题时参考

Sub Refresh()

MSG1 = MsgBox("Are you Connected to (XY) Network?", vbYesNo, "?")
If MSG1 = vbYes Then

MsgBox "Refresh in Progress"
ActiveWorkbook.Worksheets("CONTACT TRACKER").Activate
ActiveSheet.Range("A4").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False

'====================='
'    Unlock Sheets    '
'====================='

ActiveWorkbook.Worksheets("SUMMARY").Unprotect Password:="nn"
ActiveWorkbook.Worksheets("DETAILED").Unprotect Password:="nn"
ActiveWorkbook.Worksheets("ANALYSIS").Unprotect Password:="nn"


'====================='
'      Initialize     '
'====================='

Dim ptc As PivotTable

'====================='
' Refreshing Dash - 1 '
'====================='

Set ptc = ActiveWorkbook.Worksheets("SUMMARY").PivotTables("1. CALL SUMMARY - MAIN")
ptc.RefreshTable

'====================='
'      Lock Sheet     '
'====================='

ActiveWorkbook.Worksheets("SUMMARY").Protect Password:="nn", AllowUsingPivotTables:=True
ActiveWorkbook.Worksheets("DETAILED").Protect Password:="nn", AllowUsingPivotTables:=True
ActiveWorkbook.Worksheets("ANALYSIS").Protect Password:="nn", AllowUsingPivotTables:=True


ActiveWorkbook.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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    • 2014-04-20
    • 1970-01-01
    • 1970-01-01
    • 2017-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多