Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel Vba引用单元格,但在新单元格中保持静态_Excel_Vba - Fatal编程技术网

Excel Vba引用单元格,但在新单元格中保持静态

Excel Vba引用单元格,但在新单元格中保持静态,excel,vba,Excel,Vba,我的工作簿中有从yahoo finance自动加载的数据。数据不断刷新。我需要一个公式,它可以获取引用的单元格并生成该单元格的数值,而无需在引用的单元格执行任何操作时进行更新。例如:单元格G3将表示股票价值为40.75,我需要D2表示股票价值为40.75,但当G3更新为新价格时,它将保持为40.75 我尝试过使用=Numbervalue($G$3),但当数据刷新时,它仍然会更新 更新 这是VBA代码,我必须将日期和时间粘贴到活动单元格中(正确),然后将价格(G3)粘贴到D2单元格中 子时间戳()

我的工作簿中有从yahoo finance自动加载的数据。数据不断刷新。我需要一个公式,它可以获取引用的单元格并生成该单元格的数值,而无需在引用的单元格执行任何操作时进行更新。例如:单元格G3将表示股票价值为40.75,我需要D2表示股票价值为40.75,但当G3更新为新价格时,它将保持为40.75

我尝试过使用
=Numbervalue($G$3)
,但当数据刷新时,它仍然会更新

更新

这是VBA代码,我必须将日期和时间粘贴到活动单元格中(正确),然后将价格(G3)粘贴到D2单元格中

子时间戳()
'
'时间戳宏
'
'键盘快捷键:Ctrl+Shift+T
'
ActiveCell.Formula=“=串联(L1,N1)”
ActiveCell。选择
选择,复制
Selection.Paste特殊粘贴:=xlPasteValues,操作:=xlNone,SkipBlank_
:=假,转置:=假
Application.CutCopyMode=False
范围(“D2”).值=范围(“G3”).值
端接头

我的问题是,我需要代码的
Range(“D2”)。Value=Range(“G3”)。Value
部分来识别D列中的下一个空单元格。目前,它将替换D2单元格中已经存在的任何数据。

您可以通过替换此行,在宏中写入D列的第一个空行:

Range("D2").Value = Range("G3").Value
关于这一点:

ActiveSheet.Columns(4).End(xlDown).Offset(1, 0).Value2 = Range("G3").Value2

关于这一点,

您需要一个VBA解决方案—一个从G3获取值并将其放入D2的宏。进入查看>宏>录制宏并录制自己单击G3,使用CTRL+C复制,移动到D2,并使用CTRL+V粘贴。然后,每当发生“某些事件”时,例如手动选择宏时,您都可以运行该宏。那么,D2的初始值是由什么决定的呢?工作簿何时打开?不管第一个值是什么?如果您创建一个透视表并将这些单元格(G3等)作为源,那么当源更改时,该数字不会更改,直到您刷新透视表本身。“你觉得这样就可以了吗?”SamHolder在我放置公式时就确定了。另一个单元格设置了宏,用于记录刷新数据的时间。刷新后,此公式将获取G3数据并使其保持静态,以便我可以随时间将数据绘制在图形上。@Grade'Eh'Bacon我将尝试录制并让您知道。它似乎不起作用。我用那一行替换了原来的行,它所做的只是返回日期和时间,这是宏的第一部分所做的。它不会将值返回到D列的第一个可用单元格。或者至少对我来说不是。在您的代码中,
G3
writed的值在哪里?不显示在代码段中。你能在我建议的直线上画一个断点,然后检查数值和结果吗?在D栏有什么用吗?我刚意识到。。。您给我的代码除了将值填充到T列而不是D列外,其他都有效。此外,它也从第27行而不是第2行开始。您是对的
xlCellTypeLastCell
将您带到所用单元格范围中最右下角的单元格。这不是正确的过程。请尝试此替代解决方案:
ActiveSheet.Columns(4).End(xlDown).Offset(1,0).Value2=Range(“G3”).Value2
。当做