繁体   English   中英

从功能单元中提取Excel VBA ByVal目标范围时不会更新目标工作表

[英]Excel VBA ByVal Target As Range Does not update Target Worksheet when excuting from a function cell

从使用函数从另一个单元格获取其值的单元格复制值时遇到问题。 将值插入到A1中,A3 = A1,并且无论何时A3的值更改,更改都需要自动转移到H列。我遇到的问题是,如果我将值键入A1,则A3会被更新,但值不会转移,如果我将值输入A3,则H列会更新。

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Address = Range("A3").Address Then

    ' Get the last row on our destination sheet (using Sheet2, col A here)...
    Dim intLastRow As Long
    intLastRow = Sheet1.Cells(Sheet2.Rows.Count, "H").End(xlUp).Row

    ' Add our value to the next row...
    Sheet1.Cells(intLastRow + 1, "H") = Target.Value

End If

End Sub

请看图片 工作表的屏幕截图

我也尝试了以下代码。

 Private Sub Worksheet_Change(ByVal Target As Range)
 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 Private Sub Worksheet_Change(ByVal Target As Range)

以上似乎均未触发更改事件。 请我不能使用值A1进行值更改,因为它来自A3值更改。 我什至考虑过将复制和粘贴宏运行到触发器A3。 但是我真的希望值更改代码能够正常工作,我可以从A3获得更改值。 提前致谢。

当单元格重新计算其公式时,不会触发Worksheet_Change 分配单元格的Value时触发。

如果要为A1分配值,则应在处理程序中查看Range("A1").Address

这些是几个Calculate事件,但是当整个工作表(而不是单个单元格)的计算完成时会触发。

在处理您的Change尝试禁用事件。 您的代码可能会陷入循环。

Private Sub Worksheet_Change(ByVal Target As Range)

Application.EnableEvents = False

If Target.Address = Range("A3").Address Then

    ' Get the last row on our destination sheet (using Sheet2, col A here)...
    Dim intLastRow As Long
    intLastRow = Sheet1.Cells(Sheet2.Rows.Count, "H").End(xlUp).Row

    ' Add our value to the next row...
    Sheet1.Cells(intLastRow + 1, "H") = Target.Value

End If

Application.EnableEvents = True

End Sub

每当工作表上的计算完成时,将运行以下脚本,有关更多信息,请参见此链接 ,然后Colunm HA3的值更新Colunm H

不知道这是否真的有帮助,但是可能会让您走上正确的道路。 您还可以建立一个签入,以验证新的A3值在最后一个Column H值处是否相同,如果相同,则可以跳过该值的插入。

Private Sub Worksheet_calculate()

    ' Get the last row on our destination sheet (using Sheet2, col A here)...
    Dim intLastRow As Long
    intLastRow = Sheet1.Cells(Sheet2.Rows.Count, "H").End(xlUp).Row

    ' Add our value to the next row...
    Sheet1.Cells(intLastRow + 1, "H") = Sheet1.Range("A3").Value

End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM