【发布时间】:2018-11-15 04:27:19
【问题描述】:
我一直在使用宏从关闭的工作簿中提取数据时遇到问题。
上图是主工作簿,我想将宏插入其中。在单元格 A1 中,您可以看到有一个文件名位置 - 这是我要从中提取数据的已关闭辅助工作簿的位置。
我希望宏获取单元格 A1 中存在的位置,复制已关闭工作簿中的单元格 A1:J5000,然后将这些从 A7 开始粘贴到此工作簿中(即 A7:J5007)。文件名位置存在于 A1 中的原因是因为这将发生变化;但是我希望宏始终采用 A1 中显示的位置(例如,如果 A1 要从 '...\test00218_data.csv' 更改为 '...\test00001_data.csv' 那么我希望宏从新位置 test00001 获取数据)。
从那时起,我编写了一个宏,我相信它会打开所有名为“Raw Data x”的工作表,并将所需的数据粘贴到主工作表的适当区域;代码如下:
Sub PullClosedData()
Dim filePath As String
For x = 1 To 1 Step 1
filePath = Sheets("Raw Data " & x).Cells(1, 1).Value
Workbooks.Open Filename:=filePath
Sheets("Raw Data 1").Range("A7:J2113").Value = ActiveWorkbook.ActiveSheet.Range("A1:J2107")
Next x
End Sub
当我运行它时,我得到一个运行时错误 9(超出范围)。我相信这与脚本的“ActiveWorkbook.ActiveSheet”部分有关,但我不确定如何重写它并避免错误。
【问题讨论】: