[英]Excel-VBA - How to identify Target range (more than 1 cell) is deleted in a Worksheet_Change function?
[英]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 H
用A3
的值更新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.