2016-10-04 128 views
0

我正在比较两列,并在另一列中显示差异。我有一个可以工作的excel公式,但我需要在vba宏中使用它。当我尝试在宏中使用它时,虽然我收到错误“运行时错误:'1004':应用程序定义或对象定义的错误”。这怎么解决?excel公式在vba中1004错误

Sub Macro2() 

    Range("B2:B60").Formula = "=IF(COUNTIF($A:$A,$B2)=0, B2, "")" 

End Sub 

回答

1

字符串中的引号需要加倍向上的话,而不是

Range("B2:B60").Formula = "=IF(COUNTIF($A:$A,$B2)=0, B2, "")" 

使用

Range("B2:B60").Formula = "=IF(COUNTIF($A:$A,$B2)=0, B2, """")" 

但请注意,这会给循环引用错误,如单元格B2(等)将引用它自己。

也许你打算将新值写入列C?如果是这样,请使用

Range("C2:C60").Formula = "=IF(COUNTIF($A:$A,$B2)=0, B2, """")" 
+0

谢谢,这只是将B列更改为0。你知道一种解决方法吗?在Excel中,公式按预期工作。 – kit

+0

@kit - 代码只是将公式写入Excel单元格中,所以如果您手动在Excel中输入公式,则还会得到循环引用错误。 – YowE3K

+0

啊谢谢,解决了!学校男孩错误。 – kit