我正在编写一个简单的宏,用于在更改后将修改后的值(在一张纸上)与其原始值(在另一张纸上)进行比较。如果它们是不同的值,我希望这两个单元格都被赋予黄色填充。
但是,在尝试存储目标单元格的地址时,我遇到了类型不匹配错误。据我了解,Target.Address返回一个字符串。设置Location = Target为位置提供目标的值,而不是其地址。如何在进行更改时在原始工作表上引用目标的相同地址?
Dim Location as Range
Private Sub Worksheet_Change(ByVal Target As Range)
Set Location = Target.Address
If Target.Value = Sheets("Original").Range("Location").Value Then
Target.Interior.Pattern = xlNone
Sheets("Original").Range("Location").Interior.Pattern = xlNone
Else
Target.Interior.Color = 255
Sheets("Original").Range("Location").Interior.Color = 65535
End If
End Sub
感谢您的帮助!
答案 0 :(得分:4)
Dim Location as range
Private Sub Worksheet_Change(ByVal Target As Range)
Set Location =Sheets("Original").Range(Target.Address)
If Target.Value = Location.Value Then
Target.Interior.Pattern = xlNone
Location.Interior.Pattern = xlNone
Else
Target.Interior.Color = 255
Location.Interior.Color = 65535
End If
End Sub
注意:如果Target是多单元格范围,这将引发错误,因为除非是单个单元格,否则无法比较两个范围内的值。