如何将单元格地址存储到变量 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 是多单元格区域,这将引发错误,因为除非是单个单元格,否则无法比较两个区域的值。
我正在编写一个简单的宏,以便在进行更改后将修改后的值(在一个 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 是多单元格区域,这将引发错误,因为除非是单个单元格,否则无法比较两个区域的值。