当用户点击单元格作为worksheet_selectionChange事件的函数的一部分时,我试图将单元格值存储为变量。像这样:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("M" & ActiveCell.Row)) Is Nothing Then
Dim intX As Integer
intX = Range("M" & ActiveCell.Row).Value
End If
End Sub
然后我希望能够在我的工作表更改事件中检索此变量,并在用户更改我的下拉框中的值时将其显示在消息框中。
有人可以告诉我如何做到这一点吗?
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("M" & ActiveCell.Row)) Is Nothing And Range("M" & ActiveCell.Row).Value <> "Please Select..." And Range("AD" & ActiveCell.Row).Value = "View Log" Then
MsgBox intX
End If
End Sub
答案 0 :(得分:0)
您的问题是您尝试传递String
,但将其声明为Integer
。
如果SelectionChange event
位于Target
,Match
ActiveCell
将会Column M
。但是,Change event
永远不会Match
,因为Target
始终是您所在的Cell
。
要解决此问题,您需要检查Target
是否在Range("M:M")
请参阅以下代码:
If Not Intersect(Target, Range("M:M")) Is Nothing And _
Range("M" & ActiveCell.Row).Value <> "Please Select..." And _
Range("AD" & ActiveCell.Row).Value = "View Log" Then