如何在EXCEL中进行输入雕像跟踪

时间:2012-03-13 08:52:12

标签: excel excel-vba vba

我希望我的Excel工作表能够跟踪我的输入。

例如,当我输入类似ID的内容并按下ENTER键时,它会在另一张表中查找该ID并找到一个NAME并替换我输入的原始单元格中的ID。

VBA可以这样做吗?

简单的例子会很好,谢谢。

更新

是的,当然,只有一些特定的单元格我会输入ID,所以整张表格都不需要跟踪。

1 个答案:

答案 0 :(得分:2)

为您的任务使用Worksheet_Change(ByVal Target As Range)事件处理程序(为工作表定义)。每次该工作表的单元格值发生更改(由用户或其他代码)时,将调用此函数。

Target参数包含已更改的单元格范围。现在迭代该范围内的列和行,并执行您想要执行的查找/替换操作。确保事件处理程序不会调用自身的附加布尔变量。

Public NoCellUpdateHandle As Boolean

Private Sub Worksheet_Change(ByVal Target As Range)
    If NoCellUpdateHandle Then Exit Sub

    Dim row As Integer, col as Integer, idValue as String, replaceValue as String

    For Each columnObj In Target.Columns
        For Each rowObj In columnObj.Rows
            row = rowObj.Row
            col = columnObj.Column

            ' You can filter for certain rows/columns
            If row > 5 And row < 10 And col = 7 Then
                idValue = ActiveSheet.Cells(row, col).Value
                ' do the lookup for the id value in the other worksheet here
                ' replaceValue = lookup(idValue)

                ' Disable the event handler and perform the replacement
                NoCellUpdateHandle = True
                ActiveSheet.Cells(row, col).Value = replaceValue
                NoCellUpdateHandle = False
            End If
        Next rowObj
    Next columnObj
End Sub

这应该是你所需要的一切。