Excel VBA宏将某些列复制到另一个工作簿

问题描述 投票:0回答:1

我需要将一个电子表格的某些列复制到另一个电子表格中。

为了做到这一点,我有一个宏:

    Sub Submit()
    Dim sourceColumn As Range, targetColumn As Range

    Set sourceColumn = 
     Workbooks("Submission_Form.xlsm").Worksheets("RGSheet").Columns("A")
    Set myData = Workbooks.Open("I:\Projects\...\Macros\RG.csv")
    Worksheets(1).Select
    Worksheets(1).Range("A1").Select
    Set targetColumn = Workbooks("RG.csv").Worksheets(1).Columns("A")

    sourceColumn.Copy Destination:=targetColumn
    End Sub

但是,当光标到达targetColumn时,它会给出错误:

Run-time error '9':
Subscript out of range

为简单起见,我将RG.csv放在与Submission_Form.xlsm相同的文件夹中。所以我真的很困惑,为什么它会给出错误。

我还想知道如果RG.csv位于另一个目录中如何处理。

excel vba excel-vba
1个回答
0
投票

该错误可能是因为没有打开Submission_Form.xlsm(?)。您的代码看起来有点不一致。也许只需打开源和目标,然后复制列。像这样的东西?

Option Explicit

Sub Submit()
    Dim vSourceWorkbook As Workbook
    Dim vDestinationWorkbook As Workbook

    Set vSourceWorkbook = Workbooks.Open("Submission_Form.xlsm")
    Set vDestinationWorkbook = Workbooks.Open("I:\Projects\...\Macros\RG.csv")

    vSourceWorkbook.Worksheets("RGSheet").Range("A:A").Copy Destination:=vDestinationWorkbook.Worksheets(1).Range("A:A")
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.