我想创建一个从一个电子表格到另一个电子表格的简单导入,也可以更新数据,反之亦然。从sheet2复制和更新值到sheet1时,需要列到列的映射。可以用VB脚本/宏执行此操作。我尝试了以下内容进行复制,但一直收到此错误Subscript out of range
。
Private Sub Import_Click()
'Assign variable name to Target workbook
Var1 = "C:\ST Test\AAA.xlsm"
Var1S = "Status Report"
Var1R = "$A$3:$A$65536"
'Assign variable name to Target range
'Assign variable name to Source workbook
Var2 = "C:\ST Test\BBB.xlsx"
Var2S = "WORKPLAN"
Var2R = "$A$8:$A$65536"
'Open Source WorkBook
Application.Workbooks.Open ("C:\ST Test\BBB.xlsx")
'Copy from Source to Target
Workbooks(Var2).Sheets(Var2S).Range(Var2R).EntireColumn.Copy _
Destination:=Workbooks(Var1).Sheets(Var1S).Range(Var1R)
'Close Source WorkBook wo/Save
Workbooks(Var2).Close False
End Sub
答案 0 :(得分:0)
当使用EntireColumn时,这将根据您的选择位置选择一列。因此,如果您要的是不是整个列的范围,只需使用Range(x)。选择/复制目的地:=工作簿(y)。范围(q)
查看这样的操作的另一种方法是简单地将范围设置为彼此相同,这样可以通过不使用剪贴板来节省时间。
查看此代码: 工作簿(" test1.xlsx&#34)。工作表("工作表Sheet&#34)激活。 工作簿(" test1.xlsx")。工作表(" Sheet1")。范围(" A1:A5")。值=工作簿("测试。 。XLSX&#34)工作表("工作表Sheet")范围(" A1:A5")值