Excel Macro-从行中的选定单元格复制/粘贴单元格数据

时间:2019-05-30 00:00:01

标签: excel vba excel-vba macros

我的工作要求我将一个Excel工作表中的多个单元格中的数据复制/粘贴到另一Excel工作表中的特定单元格中。

我创建了一个宏,但是它只是选择我在记录宏时选择的特定单元格-这些单元格将始终根据需要数据的行而变化,因此记录的宏是无用的。此外,此信息将粘贴在其他工作表上的位置将始终是不同的(宏将复制录制时选择的相同数据,并将其粘贴到录制时要粘贴的相同位置)。我是VBA的菜鸟,所以不确定如何做到这一点。

我基本上想指定一个特定的行来开始从中复制数据,并且总是选择该特定行上的相同单元格,并将数据粘贴到我在目标工作表上选择的任何行上的特定单元格。有人可以帮忙吗?这是我的工作-任何帮助将不胜感激。理想情况下,我希望宏可以跳至所需的特定单元格并从宏开始的任何行复制该信息-然后通过在另一工作表中选择的任意行上进行制表,将数据粘贴到选定的单元格中如果可以的话,宏运行的时间。

2 个答案:

答案 0 :(得分:0)

您需要弄清楚要复制哪些单元格以及将其粘贴到何处的内部逻辑,执行此操作后,您可以调整以下代码以适合您的需求:

Sub Test2()

    'Define variables

    Dim wkCopy As Workbook
    Dim wkDest As Workbook

    Dim wsCopy As Worksheet
    Dim wsDest As Worksheet

    ' Change names as required
    Set wsCopy = Workbooks("Joey's May FY19 Audit.xlsm").Worksheets("Sheet1")
    Set wsDest = Workbooks("Master Files - May.xlsm").Worksheets("Sheet1")

    ' Copy a range from the source sheet and paste in the destination one
    wsCopy.Range("A1:A10").Copy wsDest.Range("B11")

End Sub

答案 1 :(得分:0)

您可以执行以下操作(未经测试):

Sub CopyOver()

    Dim rwSrc As Long, rwDest As Long
    Dim shtSrc As Worksheet, shtDest As Worksheet
    Dim p, arr

    'assume macro is run with the source workbook active
    Set shtSrc = ActiveSheet
    rwSrc = Selection(1).Row  '(1) = first selected cell only

    'switch to the "other" workbook and get the selection
    Workbooks("Joey's May FY19 Audit.xlsx").Activate
    Set shtDest = ActiveSheet
    rwDest = Selection(1).Row

    'Example [source:destination] pairs ColA>>ColB, B>>C, F>>H, etc
    For Each p In Array("A:B", "B:C", "F:H")
        arr = Split(p, ":")
        shtSrc.Cells(rwSrc, arr(0)).Copy shtDest.Cells(rwDest, arr(1))
    Next p

End Sub