我的工作要求我将一个Excel工作表中的多个单元格中的数据复制/粘贴到另一Excel工作表中的特定单元格中。
我创建了一个宏,但是它只是选择我在记录宏时选择的特定单元格-这些单元格将始终根据需要数据的行而变化,因此记录的宏是无用的。此外,此信息将粘贴在其他工作表上的位置将始终是不同的(宏将复制录制时选择的相同数据,并将其粘贴到录制时要粘贴的相同位置)。我是VBA的菜鸟,所以不确定如何做到这一点。
我基本上想指定一个特定的行来开始从中复制数据,并且总是选择该特定行上的相同单元格,并将数据粘贴到我在目标工作表上选择的任何行上的特定单元格。有人可以帮忙吗?这是我的工作-任何帮助将不胜感激。理想情况下,我希望宏可以跳至所需的特定单元格并从宏开始的任何行复制该信息-然后通过在另一工作表中选择的任意行上进行制表,将数据粘贴到选定的单元格中如果可以的话,宏运行的时间。
答案 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