【问题标题】:Copy data from one workbook to the other workbook sheet将数据从一个工作簿复制到另一个工作簿工作表
【发布时间】: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") 代码中的这一行可能会解决这个问题......我猜

标签: excel vba


【解决方案1】:
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

试试这个代码。

【讨论】:

  • 给出了一个错误:运行时错误9:下标超出范围
  • 错误出现在哪一行?你能把你的帖子总是出现错误的那一行贴出来吗?
  • 现在运行时错误 438 的新错误:对象不支持此属性和方法。此行出错:ThisWorkbook.Worksheets(2).Range("A1").Paste 对此感到抱歉
  • 现在可以使用了!!!非常感谢 !!!已经卡了两天了!非常感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多