如何将单元格地址存储到变量 VBA

How to store a cell address to variable VBA

我正在编写一个简单的宏,以便在进行更改后将修改后的值(在一个 sheet 上)与其原始值(在另一个 sheet 上)进行比较。如果它们是不同的值,我希望这两个单元格都被填充为黄色。

但是,我在尝试存储目标单元格的地址时遇到类型不匹配错误。据我了解,Target.Address returns 一个字符串。设置 Location = Target 为 location 提供目标的值,而不是它的地址。如何在更改时引用原始 sheet 上目标的相同地址?

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

感谢您的帮助!

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 是多单元格区域,这将引发错误,因为除非是单个单元格,否则无法比较两个区域的值。