以下のコードを記述して、2つのセルが同じかどうかを確認します。列20のセルは、別のシートからのコメントを返すvlookupです。列16のセルにこれらのコメントが既に含まれているかどうかを確認し、含まれていない場合は、マクロに20のセルから16のセルに値を貼り付けます。コメントが必要なため、基本的にこれを実行します。 16では純粋なテキストになりますが、コメントはシートの隣にあるピボットテーブルに関連しているため、動的に(別のマクロを介して)更新する必要があります。
編集:関連がある場合に備えて、Excel2007を使用しています。
以下のコードでは、マクロが列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