【问题标题】:VBA, constantly listen to changes in cells that meet specific criteriaVBA,不断听取符合特定标准的单元格的变化
【发布时间】:2016-07-02 04:56:36
【问题描述】:

我是 VBA 新手,我有一个包含股票数据的 Excel 表格。

  • A 栏 - 股票代码
  • B 栏 - 股票名称
  • column C - “变量数”,改变所有变量的数 时间。

当 C 列中的数字在 [-4;4] 之间时,应弹出一个消息框,显示 A 列中的股票代码和 B 列中的名称,以及 C 列中的数字。

例如,此时如果C列中的Google值为-1,那么消息框将显示:Google Alphabet Inc -1 [在本例中:Googl(column A)、Alphabet Inc(column B), -1(变化值为C列)。

请帮帮我,非常感谢!

【问题讨论】:

    标签: vba search offset vlookup msgbox


    【解决方案1】:

    将此事件更改侦听器插入到您的工作表(例如 Sheet1)。 Target.Column 是您的 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
    

    【讨论】:

    • 感谢您的帮助,但它似乎不起作用。让我澄清一下:我需要 vba 自动转到 A 列和 B 列以查找股票代码和名称,以及要显示在 msgbox 中的列 c 值。根据您在 msgbox 上方所写的内容,只会显示“c 列值是”以及 c 列值。再次感谢您!
    • 它对我有用。确保您将侦听器复制到工作表对象并将宏复制到模块
    • 对不起,您能解释一下“确保您将侦听器复制到工作表对象”吗?
    • 当您打开 VBA 编辑器时,您会看到工作表和模块列表。您需要将第一段代码复制到工作表中,其中包含您的股票数据和 A、B、C 列
    • 我不知道我做错了什么。我按照您的指示将第一段代码复制到了我拥有股票数据的工作表中。然后我转到左键单击并创建了一个新模块,然后我复制了您设计的 sub msgboxmacro 代码。之后我该怎么办?我按了保存,然后按 F5 尝试查看它是否有效,但没有任何反应。我做对了吗?或遗漏任何步骤?再次感谢!
    猜你喜欢
    • 2014-03-17
    • 2021-05-30
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 2018-09-12
    • 2022-01-07
    • 2020-04-07
    相关资源
    最近更新 更多