将数据从工作簿复制到另一个工作簿时,下标超出范围错误

时间:2016-05-20 15:04:02

标签: vba excel-vba excel

我正在尝试将数据从一个工作簿复制到另一个工作簿。 我编写了下面的代码片段,但是当执行下面的行时我得到下标超出范围错误 -

ThisWorkbook.Sheets("Sheet2").Range("A" & i, Sheets("Sheet2").Range("A" & i).Offset(chunks - 1, c_cnt - 1)).Value = Workbooks("C:\Users\user1\Desktop\" & f_name).Sheets("Sheet1").Range("A" & i, Sheets("Sheet1").Range("A" & i).Offset(chunks - 1, c_cnt - 1)).Value

变量值:

i=1
chunks=10
fname="test.xlsx"

2 个答案:

答案 0 :(得分:2)

我怀疑与您的代码有关,只是调用sheet()而不指定工作簿,它应该从中拉出该工作表。尝试为两个工作表设置变量,以便您可以清楚地定义它。如果您以后需要调试它,这也会使该行更容易阅读。

mouseX = (event.touches !== undefined) ? (event.touches[0].pageX - bRect.left)*(canvas2.width/bRect.width) : event.offsetX || event.pageX-$('#board2').offset().left,

您甚至可以更进一步定义范围变量,这可能会使其更具可读性

Dim wb As Workbook, ws1 As Worksheet, ws2 As Worksheet

Set ws1 = Workbooks("C:\Users\user1\Desktop\" & f_name).Sheets("Sheet1")
Set ws2 = ThisWorkbook.Sheets("Sheets2")

ws2.Range("A" & i, ws2.Range("A" & i).Offset(chunks - 1, c_cnt - 1)).Value = ws1.Range("A" & i, ws1.Range("A" & i).Offset(chunks - 1, c_cnt - 1)).Value

答案 1 :(得分:0)

尝试在分配值之前选择目标工作表:

Workbooks("C:\Users\user1\Desktop\" & f_name).Sheets("Sheet1").select

(并确保您按照预期使用f_name或fname)