具有两个不同条件的 Msgbox
Msgbox with two different criteria
我有一个excel sheet,同时有A、B、C、D列。
C & D 数字一直在变化(他们有不同的标准),因为它是根据实时获取的股票数据计算的。
我需要在 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 号达到标准时弹出消息框)请帮忙。
谢谢!
类似这样的东西,离你所拥有的不远。这将进入要进行更改的工作表中。
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
通过将另一个参数传递给函数 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
希望对您有所帮助。
我有一个excel sheet,同时有A、B、C、D列。
C & D 数字一直在变化(他们有不同的标准),因为它是根据实时获取的股票数据计算的。
我需要在 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 号达到标准时弹出消息框)请帮忙。
谢谢!
类似这样的东西,离你所拥有的不远。这将进入要进行更改的工作表中。
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
通过将另一个参数传递给函数 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
希望对您有所帮助。