首页 > 解决方案 > Excel VBA 在两个工作簿之间复制单元格

问题描述

我正在尝试在两个工作簿之间复制数据:从单元格 A3 到 Voice 中的最后一个单元格到 Voice_Files 中的相应单元格。我无法让它工作,我在做什么?下面是代码:

Sub Copy()
    Dim wB1 As Workbook
    Dim wB2 As Workbook
    Dim wS1 As Worksheet
    Dim wS2 As Worksheet
    Dim c1 As Range
    Dim c2 As Range


    Dim MASTER_FILE_NAME As String
    MASTER_FILE_NAME = "Voice.xlsm"
    Dim REPORT_FILE_NAME As String
    REPORT_FILE_NAME = "Voice_Files.xlsm"


    'Set wB1 = ThisWorkbook
    'Set wB1 = ActiveWorkbook
    Set wB1 = Workbooks("Voice.xlsx")
    Set wB2 = Workbooks("Voice_Files.xlsx")

    Set wS1 = wB1.Sheets(1)
    Set wS2 = wB2.Sheets(1)


    'Take the whole column in master sheet
    Set c1 = wS1.Range("A2").End(xlDown).End(xlToRight)
    Set c2 = wS2.Range("A2").End(xlDown).End(xlToRight)

    'Transfer the values
    c2.Value = c1.Value
End Sub

标签: excelvba

解决方案


您可以将Ranges 包含在另一个Range调用中,即第一个是左上角的单元格,第二个是右下角的单元格。

With ws1
    Set c1 = .Range(.Range("A2"), .Range("A2").End(xlDown).End(xlToRight))
End With

推荐阅读