vba - 如何从另一个工作簿(excel)复制数据?

标签 vba excel

我已经有一个可以创建工作表和其他一些东西的宏。创建工作表后,我是否想调用另一个宏,将数据从第二个 Excel(其打开)复制到第一个事件 Excel 文件。

首先,我想复制到标题,但我无法让它工作 - 不断出现错误。

Sub CopyData(sheetName as String)
  Dim File as String, SheetData as String

  File = "my file.xls"
  SheetData = "name of sheet where data is"

  # Copy headers to sheetName in main file
  Workbooks(File).Worksheets(SheetData).Range("A1").Select  # fails here: Method Select for class Range failed
  Workbooks(File).Worksheets(SheetData).Range(Selection, Selection.End(xlToRight)).Select
  Workbooks(File).Worksheets(SheetData).Selection.Copy ActiveWorkbook.Sheets(sheetName).Cells(1, 1)
End Sub

出了什么问题?

我真的想避免必须激活“my file.xls”。

编辑:在它可以工作之前,我不得不放弃它并将 SheetData 作为新工作表复制到目标文件。 Find and select multiple rows

最佳答案

两年后(在 Google 上找到此内容,对其他人也是如此)...如上所述,您不需要选择任何内容。这三行:

Workbooks(File).Worksheets(SheetData).Range("A1").Select<br/> Workbooks(File).Worksheets(SheetData).Range(Selection, Selection.End(xlToRight)).Select<br/> Workbooks(File).Worksheets(SheetData).Selection.Copy ActiveWorkbook.Sheets(sheetName).Cells(1, 1)

可以替换为

Workbooks(File).Worksheets(SheetData).Range(Workbooks(File).Worksheets(SheetData). _<br/> Range("A1"), Workbooks(File).Worksheets(SheetData).Range("A1").End(xlToRight)).Copy _<br/> Destination:=ActiveWorkbook.Sheets(sheetName).Cells(1, 1)

这应该可以解决选择错误。

关于vba - 如何从另一个工作簿(excel)复制数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/482717/

相关文章:

vba - PPT2010插入图片无法获取原文件名

excel - 在 Excel 中交替着色行组

excel - 将 Excel 连接到 Analysis Services 服务器时遇到问题

vba - 确定变量的完整类型

excel - 如何从 Excel 列表中查找和替换

vba - 如何在 VBA 中动态调整数组的大小?我不断收到下标和索引问题

javascript - HTML/VBA Click 事件未触发

VBA循环遍历一个列,获取每个位置的前10个(如果小于10,则为最大值)的范围

regex - Excel中的表达式语法?

C# Interop.Excel '#N/A' 单元格值转换为 -2146826246