【发布时间】:2019-02-03 16:20:44
【问题描述】:
我有一组 VBA 代码,它们复制 Sheet2 中的单元格“AC14”并作为值粘贴到 Sheet6 中的单元格“Q4”。当 Sheet6 中单元格“Q4”的值发生变化时,我有另一组代码可以在 Sheet6 中应用过滤器,对此我很高兴。这些代码虽然不完美,但它在一定程度上起作用。以下是我复制和粘贴部分的代码。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Range("AC14"), Target) Is Nothing Then
Range("AC14").Select
Selection.Copy
Sheet6.Activate
Sheet6.Range("Q4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If
结束子
我想改进的地方如下:
1) 将 Range("AC14") 更改为“AC”列中动态范围内的动态单元格,从第 11 行开始更改为不时更改的行号。因此,当我(或用户)单击此范围内的任何单元格时,代码将正确运行。
注意:Sheet2 是一个工作表,用于记录对我正在处理的项目所做的更改。每行代表我的项目的一个更改,随着时间的推移,发生的更改(行)数量可能会达到 1500。Sheet2 的第 1 到 10 行分配给列标签
2) 当我的光标位于 Sheet2 中的单元格“AC14”上时,当我再次单击它时,它不会将我带到 Sheet6。我理解这一点,因为它不是工作表中的更改(在 vba 中,cursur 已经存在)。但是,如果我单击其他单元格并再次返回单击单元格“AC14”,则代码将起作用。有没有办法解决这个问题?
如果有人能告诉我如何解决上述问题,我将不胜感激。提前致谢。
肖恩
【问题讨论】:
-
定义'不时变化的行号'.
-
感谢您的评论,但这就是我卡住的地方。如果您能告诉我如何操作,将不胜感激。
-
行号在什么情况下发生变化?你能用文字解释一下吗?我们看不到你的屏幕,也无法读懂你的想法,所以你必须用你的话。
-
嗨 teylyn,我很抱歉,感谢 cmets。我已经编辑了我的问题以回应您的 cmets。如果还不清楚,请大声喊叫。