如何从刷新停止Excel()公式

我有我使用的Excel报告有多个SQL表插入,因此我有一个命令button,运行一个macros,刷新所有表。 我试图添加一些代码,该macros将创build上次刷新表的时间戳。

以下是我到目前为止:

Sub Button1_Click() ThisWorkbook.RefreshAll Range("I17").Formula = "=Now()" End Sub 

这是我想要的,但问题是我的报告有很多其他单元格不断更新工作表,这反过来导致时间戳单元格(I17)不断刷新。

我能做些什么来使NOW()函数“locking”到那个时间,除非我特别点击我的macrosbutton,否则不会刷新。

根据定义,公式重新计算每次重新计算的结果。 如果不是这样的话,Excel就没用了。

你想要的不是一个公式 ,而是一个价值

所以,而不是使用Excel的NOW()函数,使用VBA的DateTime.Now属性来分配单元格的

 ActiveSheet.Range("I17").Value = VBA.DateTime.Now 

所有事情都可以通过隐含的方式进行:

 [I17] = Now 

我鼓励你find一个中间的基础 – 隐含的引用是一个非常普遍的错误来源。 像这样的东西似乎是可以接受的,只要你没有一个在隐藏 VBA.DateTime属性的范围内的Nowvariables,常量,过程或模块:

 ActiveSheet.Range("I17") = Now 

上面的指令显式限定了活动工作表的Range调用,隐式使用了Range对象的默认属性Value ),并隐式地限定了VBA.DateTime标准库模块中的Now属性。