0

好的,我的第一部分正在处理一个主要问题。当我运行下面的代码时,它将为工作簿中的每一页显示一个文本值。我只需要它在“启动设备”页面上的“J”中显示一个值。其他页面有不同的列标题。此外,它仅在手动运行宏时才有效,我想知道它是否可以在用户输入设备状态时运行,这将实时更新另一个页面上的值。这是迄今为止我一直在使用的代码,但效果有限

Sub calctestvalues()

Dim lng As Long
lng = Cells(Rows.Count, "B").End(xlUp).Row
Range("J7:J" & lng).Value = Evaluate("=B7:B" & lng & "&E7:E" & lng)

End Sub
4

1 回答 1

0

下面将在“启动设备”表的 B 列中找到最后一行,并写入正确的范围。

Sub CalcTestValues()
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim lastRow As Long

    Set wb = ThisWorkbook
    Set ws = wb.Sheets("Initiating Devices")

    lastRow = ws.Range("B" & ws.Rows.Count).End(xlUp).Row
    ws.Range("J7:J" & lastRow).Value = Evaluate("=B7:B" & lastRow & "&E7:E" & lastRow)

End Sub

如果您希望在用户输入数据时触发此事件,则需要该Worksheet_Change事件。这是一个很好的入门参考:Worksheet Change Event: Automatically Run Excel Macros When a Cell Changes

于 2013-07-02T16:28:43.273 回答