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