2016-10-04 6 views
0

Я сравниваю два столбца и отображаю различия в другом столбце. У меня есть формула excel, которая работает, но мне нужно использовать ее в макросе vba. Когда я пытаюсь использовать его в макрокоманде, я получаю сообщение об ошибке «Ошибка выполнения:« 1004 »:« Определенная приложением или объектная ошибка ». Как это можно зафиксировать?excel formula in vba 1004 error

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