【发布时间】:2017-04-07 06:40:49
【问题描述】:
我是 VBA excel 新手。我正在尝试将工作表上的数据从工作簿复制到另一个工作簿上的另一个工作表。用户通过文件对话框选择他们想要打开的文件。但是,我不断收到运行时错误 9:下标超出范围的错误。有人可以启发我。谢谢你。
Sub selectfile()
Dim FileToOpen As String
Dim wb2 As Workbook
Dim wb1 As Workbook
Dim sheet As Worksheet
Application.ScreenUpdating = False
Sheet2.Range("A:Y").ClearContents
FileToOpen = Application.GetOpenFilename _
(Title:="Please choose a Excel File to Open", _
FileFilter:="Excel Files *.xlsx(*.xlsx),")
Sheet1.Range("B30").Value = FileToOpen
Set wb2 = Workbooks.Open(FileToOpen)
Set sheet = wb2.Worksheets(1)
wb2.Activate
sheet.Copy After:=Workbooks("OQC_Check_Tools.xlsm").Sheets("Sheet2")
End Sub
【问题讨论】:
-
错误是否出现在 set wb2=workbooks.worksheets("Sheet1") 行?还是在 workboos.open 行?
-
错误出现在这一行:Set sheet = wb2.Worksheets("Sheet1")
-
尝试使用工作表的索引而不是名称.....类似于 set sheet=wb2.worksheets(1)
-
它现在可以工作,但我想将我打开的文件中的数据复制到工作簿中。我该怎么做?
-
sheet.Copy After:=Workbooks("OQC_Check_Tools.xlsm").Sheets("Sheet2") 代码中的这一行可能会解决这个问题......我猜