2017-04-07 191 views
1

我是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 
+0

错误来设置wb2 = workbooks.worksheets(“Sheet1”)行吗?或在workboos.open线? –

+0

错误是在这条线:集片= wb2.Worksheets(“工作表Sheet1”) –

+0

试片,而不是名称的指数.....像一套表= wb2.worksheets(1) –

回答

0
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) 
sheet.usedrange.copy destination:=thisworkbook.worksheets(2).range("A1") 

End Sub 

试试这个代码。

+0

给了这样的错误:\t 运行时错误9:下标越界 –

+0

在哪一行是错误的?你能不能在帖子中发布错误所在的行。 –

+0

运行时错误438的新错误:对象不支持此属性和方法。错误在这一行上:ThisWorkbook.Worksheets(2).Range(“A1”)。粘贴非常抱歉那个 –

相关问题