Vba 为什么每次运行此宏时都会出现随机零?

Vba 为什么每次运行此宏时都会出现随机零?,vba,excel,macros,Vba,Excel,Macros,我正在使用命令按钮运行下面的宏,但每次运行宏时,随机单元格的工作表上都会出现一个零。正在使用的宏来自已录制的宏,请注意,以防万一,这可能就是原因。记录的宏就是它从另一张表中引用并在另一张表中自动归档 Sub Refresh() ActiveCell.FormulaR1C1 = "='raw data'!R[-5]C" Range("A7").Select Selection.AutoFill Destination:=Range("A7:A500"), Type:=xlF

我正在使用命令按钮运行下面的宏,但每次运行宏时,随机单元格的工作表上都会出现一个零。正在使用的宏来自已录制的宏,请注意,以防万一,这可能就是原因。记录的宏就是它从另一张表中引用并在另一张表中自动归档

Sub Refresh()
    ActiveCell.FormulaR1C1 = "='raw data'!R[-5]C"
    Range("A7").Select
    Selection.AutoFill Destination:=Range("A7:A500"), Type:=xlFillDefault
End Sub

我假设在运行代码时,它就是您的
activecell
所在的位置

这将解决这个问题

Range("A7:A500") = "='raw data'!R[-5]C"
只需添加一个附加选项:

Sub Values()
Range("A7:A500").Value = Sheets("raw data").Range("A2:A500").Value
End Sub

这段代码中没有任何东西会在随机单元格中放入0。公式的结果将发布到按下按钮时处于活动状态的单元格中。如果公式指向一个空单元格,它将生成一个
0
-这就是你的意思吗?是的,很抱歉混淆了,我也刚刚意识到了这一点。有没有办法不加零?你能修改你的公式吗?
=如果('raw data'!A2=“”,'raw data'!A2)
实际上,这会在每个单元格中插入一个相对公式。我认为OP希望将原始数据表中特定单元格的结果复制到每个单元格中。你能看到我之前的评论吗?@MacroMan,公式是相对的,但在原始代码中,A7的值复制到范围中,而不是公式中。