有没有人可以帮我做下面的事情的宏。我在工作表1中有带标题的数据,在工作表2中只有标题,没有数据。我需要一个宏来搜索工作表1和工作表2的匹配标题,并将粘贴数据复制到工作表2中。例如:如果工作表1和2有标题发票,则工作表1中的数据应粘贴到该标题下的工作表2中。但问题在于数据的粘贴。宏应粘贴每一张发票,从下一张发票起留出3行。同样,对于Sheet2中存在的其他标头也应该这样做,例如:(Sheet1)发票开票日期金额251 5/5/14 125150 5656 10/8/14 85000
表(2)科目总账发票盘点日期数据库xxxx 251 5/5/14
在3行数据库xxxx 5656 10/8/14之后
我检查了其他宏,但不能在3行之后粘贴数据。请帮帮我。
发布于 2015-01-21 02:53:19
这就是你要的。请注意,您需要将工作表名称分别更改为"Source“和"Target”。
Sub copyPaste()
Dim srcColumnName As String
Dim srcColumnIndex As Integer
Dim srcRowIndex As Integer
Dim trgtColumnName As String
Dim trgtColumnIndex As Integer
Dim trgtRowIndex As Integer
Dim srcItemColumnIndex As Integer
Dim trgtItemColumnIndex As Integer
Dim srcItemName As String
srcColumnIndex = 1
srcRowIndex = 1
Do While (1)
trgtColumnIndex = 1
trgtRowIndex = 1
srcColumnName = Worksheets("Source").Cells(srcColumnIndex, srcRowIndex).Value
'MsgBox ("Source Column Name: " + srcColumnName)
If (srcColumnName = "") Then
Exit Do
End If
Do While (1)
trgtColumnName = Worksheets("Target").Cells(trgtColumnIndex, trgtRowIndex).Value
'MsgBox ("Target Column Name: " + trgtColumnName)
If (trgtColumnName = "") Then
Exit Do
End If
srcItemColumnIndex = 2
trgtItemColumnIndex = 2
If (trgtColumnName = srcColumnName) Then
Do While (1)
srcItemName = Worksheets("Source").Cells(srcItemColumnIndex, srcRowIndex).Value
'MsgBox ("Source Item : " + srcItemName)
If (srcItemName = "") Then
Exit Do
End If
Worksheets("Target").Cells(trgtItemColumnIndex, trgtRowIndex).Value = Worksheets("Source").Cells(srcItemColumnIndex, srcRowIndex).Value
srcItemColumnIndex = srcItemColumnIndex + 1
trgtItemColumnIndex = trgtItemColumnIndex + 3
Loop
End If
trgtRowIndex = trgtRowIndex + 1
Loop
srcRowIndex = srcRowIndex + 1
Loop
MsgBox ("Program Completed successfully !!! ")
End Sub关于Nirmalya
https://stackoverflow.com/questions/28050589
复制相似问题