如果条件为真,则使用VBA代码在工作表之间复制和粘贴文本

时间:2014-07-29 08:59:28

标签: vba excel-vba excel

我在Excel工作簿上有2张纸:

  • 在第一张表格中我有C号范围内的采购订单数量,有时会在B范围内有与采购订单相关的评论

  • 在第二张表格中,我还购买了范围为C(PO)的订单,其中的评论范围为C.

纸张之间的某些PO是相同的。如果PO与VBA相同,我想将评论从第二张复制到第一张。

简而言之:如果PO Sheets1 = PO sheet2,那么将sheet2的注释复制到工作表1

我查看了不同的主题并测试了不同的代码,但我是VBA的初学者,所以我需要帮助。

我可以复制我测试的最后一个代码,并根据另一个主题进行定制,但它不起作用:

 Sub copycomment()

Dim i As Long
Dim col1 As Long
Dim col2 As Long
Dim sheetOne As String
Dim sheetTwo As String


col1 = 3
col2 = 3
sheetOne = "Feuil1"
sheetTwo = "Feuil2"
lastrow1 = Sheets(sheetOne).Cells(Sheets(sheetOne).Rows.Count, col1).End(xlUp).Row
lastrow2 = Sheets(sheetTwo).Cells(Sheets(sheetTwo).Rows.Count, col2).End(xlUp).Row

For i = 2 To lastrow1
        For j = 2 To lastrow2

            If Sheets(sheetOne).Cells(i, col1).Value = Sheets(sheetTwo).Cells(j, col2).Value Then
            Sheets(sheetOne).Cells(i, 6).Value = Sheets(sheetTwo).Cells(j, 2).Value

       End If
    Next
Next
End Sub

我希望我很清楚 提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

如果符合您的要求,请尝试此代码。

Sub copycomment()

Dim i As Long
Dim col1 As Long
Dim col2 As Long
Dim sheetOne As String
Dim sheetTwo As String


col1 = 3
col2 = 3
sheetOne = "Feuil1"
sheetTwo = "Feuil2"
lastrow1 = Sheets(sheetOne).Cells(Sheets(sheetOne).Rows.Count, col1).End(xlUp).Row
lastrow2 = Sheets(sheetTwo).Cells(Sheets(sheetTwo).Rows.Count, col2).End(xlUp).Row

For i = 2 To lastrow1
        For j = 2 To lastrow2

            If Sheets(sheetOne).Cells(i, col1).Value = Sheets(sheetTwo).Cells(j, col2).Value Then
            Sheets(sheetOne).Cells(i, 6).Value = Sheets(sheetTwo).Cells(j, 2).Comment.Text 'Copies comment from sheettwo to sheetone
            Exit For
            End If
    Next
Next
End Sub