【发布时间】:2021-11-20 22:26:56
【问题描述】:
我已经阅读了很多关于这个主题的帖子,但是似乎没有什么适合我的场景
我想在单元格更改 (B2) 时 Call Sub 包含来自外部源的实时数据馈送 -last updated:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Target.Worksheet.Range("B2")) Is Nothing Then
Call SubName
End If
End Sub
我浏览了许多帖子,建议检查Äpplication.EnableEvents = True,或者创建函数来检测更改(这确实有效,但是我不能在函数内调用 sub) - 没有成功。
Interestnigly enough, when I click on B2 and press enter - it executes the sub
谢谢
【问题讨论】:
-
代码看起来正确。您是否将代码保存在要触发的工作表的工作表对象中?如果你只是把它保存在一个模块中,它是行不通的。
-
为什么需要
If Not Intersect(Target, Target.Worksheet.Range("B2")) Is Nothing Then,就用If Not Intersect(Target, Range("B2")) Is Nothing Then -
感谢您的回复 - 是的,代码在我正在使用的工作表中。有趣的是,当我点击 B2 并按 Enter 键时,它会执行 sub。
-
实时数据馈送是否真的改变了单元格的内容,或者它只是以某种方式显示某些东西(例如图像),使它看起来像是在改变? (我什至不确定这种情况是否可行,但数据馈送显然有一些东西奇怪。)尝试将单元格 C2(或某处)设置为
=B2并查看它是否已更新. (如有必要,您可以使用Change事件来检测 C2 的变化。) -
谢谢@YowE3K - 我确信数据正在正确更新,我也尝试过使用额外的单元格......