1

编写下面的代码来检查两个单元格是否相同。第 20 列中的单元格是一个从另一个工作表返回评论的 vlookup。我想检查第 16 列中的单元格是否已经有这些评论,如果没有,我希望宏将值从 20 中的单元格粘贴到 16 中的单元格中。我基本上这样做是因为我想要评论在 16 中只是纯文本,但它需要动态(通过另一个宏)更新,因为注释与它们位于工作表上的数据透视表相关。

编辑:我正在使用 Excel 2007,以防万一。

在下面的代码中,当宏尝试复制第 20 列中的单元格时,就会出现问题。此代码具体为:

ActiveSheet.Range(Cells(rowstest, 20)).Copy

这是完整的代码:

Sub MgrCmntsTest()
    Application.ScreenUpdating = False
    Dim rowstest As Integer
    rowstest = 1
    Dim comments As String
    Dim commentsForm As String
    With ActiveSheet.Range("a1:u500")
        Do
        comments = Cells(rowstest, 20).Value
        commentsForm = Cells(rowstest, 16).Value
        If comments = commentsForm Then
            rowstest = rowstest + 1
        Else
            ActiveSheet.Range(Cells(rowstest, 20)).Copy
            ActiveSheet.Range(Cells(rowstest, 16)).Select
            ActiveSheet.PasteSpecial Type:=xlPasteValues
            rowstest = rowstest + 1
        End If
        Loop While rowstest < 501
    End With
    Application.ScreenUpdating = True
End Sub
4

1 回答 1

2

实际上你可以将代码减少到

Range("p1:P500").Value = Range("T1:T500").Value

(因为如果它们的值不同,则需要复制它们,如果它们相同,仍然可以复制这些值)

于 2013-02-07T12:07:05.447 回答