我有一张excel表,列有A,B,C,D。
C& D号码一直在变化(它们有不同的标准),因为它是通过实时获取的库存数据来计算的。
当C& C时,我需要弹出消息框。 D匹配我的目标值,并显示A列中的股票代码,B列中的名称和C / D中的数字。
在只有C列时我知道代码的帮助:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.column = 3 And Target.value >= -4 And Target.value <= 4 Then
Call MsgBoxMacro(Target.value, Target.column, Target.row)
End If
End Sub
Sub MsgBoxMacro(value, column, row)
MsgBox "Ticker: " & Cells(row, column - 2) & vbNewLine & "Stock Name: " & Cells(row, column - 1) & vbNewLine & "Variable Value: " & value
End Sub
当我想将D列数据添加到代码中时,我不知道该怎么做。 (所以我可以在D号达到标准时弹出消息框)请帮助。
谢谢!
答案 0 :(得分:0)
像这样的东西,离你所拥有的东西不远。这将在工作表中进行更改。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 Then
If ((Target.Offset(0, -1).Value > -4 And Target.Offset(0, -1).Value < 4) And _
(Target.Value > -4 And Target.Value < 4)) Then
' Msgbox here
Else
End If
End If
End Sub
答案 1 :(得分:0)
通过将另一个参数传递给函数,MsgBoxMacro将解决您的问题:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.column = 32 And Target.value >= -4 And Target.value <= 4 Then
Call MsgBoxMacro(Target.value, Target.column, Target.row, 0)
End If
If Target.column = 33 And Target.value >= -4 And Target.value <= 4 Then
Call MsgBoxMacro(Target.value, Target.column, Target.row, 1)
End If
End Sub
Sub MsgBoxMacro(value, column, row, counter)
MsgBox "Ticker: " & Cells(row, column - 31 - counter) & vbNewLine & "Stock Name: " & Cells(row, column - 30 - counter) & vbNewLine & "Variable Value: " & value
End Sub
希望这有帮助。