写下面的代码来检查两个单元格是否相同。第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
答案 0 :(得分:2)
实际上你可以将代码减少到
Range("p1:P500").Value = Range("T1:T500").Value
(因为如果值不同,则需要复制这些值,如果它们相同,则仍然可以复制这些值)