VBA代码自动更新单元格与当前date,当单元格更改,无法正常工作

我有一张表,我每天更改一些行的统计数据,我必须知道什么时候统计数据发生了变化。 为了让我的生活更轻松,我在网上find了这个VBA代码:

Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("R1:R2000")) Is Nothing Then Exit Sub Target.Offset(0, 1) = Date End Sub 

代码奇妙地工作。 每当我改变列R的de stats,它就更新列S上的date。

问题是我在链接到外部源(Oracle数据库)的表中更改此统计信息,如果我尝试刷新表,它会将表的整个内容更改为不同的date。 我现在要做的是每次刷新表格,我只是评论整个VBA代码。

有什么我可以改变的代码,所以刷新表时不更新?

编辑1:

 Sub RefreshOracleTable() Application.EnableEvents = False If Intersect(Target, Range("R1:R200000")) Is Nothing Then Exit Sub Target.Offset(0, 1) = Date ThisWorkbook.Sheets("wsTables").ListObjects("OracleTable").QueryTable.Refresh BackgroundQuery:=Application.EnableEvents = True End Sub 

禁用事件,然后刷新表

你可以写一个Sub,你将用它来刷新表格。 在刷新之前,您将禁用Excel事件。 像这样:

 Sub RefreshOracleTable Application.EnableEvents = False 'the refresh itself code something like Thisworkbook.Sheets("wsTables").ListObjects("OracleTable").QueryTable.Refresh BackgroundQuery:=False Application.EnableEvents = TRUE End Sub 

用键盘快捷键手动inputdate

考虑使用键盘快捷方式来手动input当前date。 CTRL + ;

解释当前的情况和提出的解决scheme

在这里输入图像说明