Excel VBA代码,用于查找,存储和检索最近更改的单元格中的数据

时间:2015-10-20 00:07:44

标签: vba excel-vba excel

我尝试创建一个代码,找到Sheet1中最近更改的单元格(范围B4:B4003),将其存储为变量("重新打印")然后可以粘贴该信息作为单独的模块进入Sheet2中的单元格。所以我需要两行代码,一行用于查找和存储信息,另一行用于检索和粘贴信息。或者也许我完全咆哮着错误的树!欣赏有关如何做到这一点的任何想法。

存储最近更改的单元格的当前代码(存储在工作表中的代码)

Public reprint As String

Sub Worksheet_Change(ByVal Target As Range)
Const WS_RANGE As String = "B4:B4003"

On Error GoTo ws_exit:
Application.EnableEvents = False
If Not Intersect(Target, Me.Range(WS_RANGE)) Is Nothing Then
With Target
Let reprint = Target.Value
End With
End If

ws_exit:
Application.EnableEvents = True
End Sub

1 个答案:

答案 0 :(得分:0)

这是一个稍微安全的代码版本 - 它将处理多单元格更新和案例,例如在单次更新中更改范围A4:B4。如上所述,您不需要代码来禁用事件(除非您遗漏了一些其他代码)

Public reprint As String

Sub Worksheet_Change(ByVal Target As Range)

    Const WS_RANGE As String = "B4:B4003"

    Dim rng As Range

    Set rng = Application.Intersect(Target, Me.Range(WS_RANGE))
    If rng Is Nothing Then Exit Sub

    reprint = rng.Cells(1).Value

End Sub