繁体   English   中英

使用 Worksheets.Activate 语法时下标超出范围错误

[英]Subscript out of range error when using Worksheets.Activate syntax

我已经编写了以下代码,并在调试时为行工作表(“程序映射表”)出现错误“下标超出范围”。激活


Application.DisplayAlerts = False 'Don't display alert
Worksheets("Program Mapping Sheet").Activate 'Set the active worksheet
Sheets("Program Mapping Sheet").Cells.Clear

Worksheets("Copied Raw Data").Activate 'Set the active worksheet
Worksheets("Copied Raw Data").UsedRange.Copy 'Copy the data

Worksheets("Program mapping sheet").Activate 'Set the active worksheet
Worksheets("Program mapping sheet").Range("A1").PasteSpecial xlPasteValues

ThisWorkbook.RefreshAll 'Refresh all the pivot tables


If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData

Application.DisplayAlerts = True 'Display Alerts
Worksheets("Hide").Activate 'Set the active worksheet
Worksheets("Hide").Range("A1").Select
End Sub 


这可以简化如下:

Dim progMapSheet As Worksheet
Dim copiedRawData As Worksheet

Set progMapSheet = ThisWorkbook.Worksheets("Program mapping sheet")
Set copiedRawData = ThisWorkbook.Worksheets("Copied Raw Data")

Application.DisplayAlerts = False 'Don't display alert

progMapSheet.Cells.Clear

progMapSheet.Range("A1").Resize(copiedRawData.UsedRange.Rows.Count, copiedRawData.UsedRange.Columns.Count).Value = copiedRawData.UsedRange.Value 'Copy the data

ThisWorkbook.RefreshAll 'Refresh all the pivot tables

If progMapSheet.FilterMode Then progMapSheet.ShowAllData

Application.DisplayAlerts = True 'Display Alerts
ThisWorkbook.Worksheets("Hide").Activate 'Set the active worksheet
ThisWorkbook.Worksheets("Hide").Range("A1").Select

我试图在新工作簿中复制您的问题,并且代码执行没有问题,如果您遇到此错误,我会检查您的工作表的名称并确保它们与您的代码对齐。

顺便说一句,尝试将代码中的名称复制并粘贴到工作表名称中,反之亦然。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM