获取click上单元格的值并将其作为变量存储在worksheet_selectionChange sub中,然后将变量传递给worksheet_Change sub?

时间:2015-09-09 09:55:11

标签: excel vba

当用户点击单元格作为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

1 个答案:

答案 0 :(得分:0)

您的问题是您尝试传递String,但将其声明为Integer

如果SelectionChange event位于TargetMatch 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