Ошибка, определяемая приложением или объектом, ошибка в макро excel из записи макроса

#excel #excel-formula

Вопрос:

У меня возникли проблемы с моей записанной формулой, использующей запись макросов. Вот сценарий:

 Range("M2").Select

ActiveCell.FormulaR1C1 = "=IFERROR(MID(RC[-3],SEARCH(""/BRI/AC"",RC[-3],1) 8,7),IFERROR(MID(RC[-3],SEARCH(""TG00006"",RC[-3],1),7),IFERROR(MID(RC[-3],SEARCH(""CA002"",RC[-3],1),5),IFERROR(MID(RC[-3],SEARCH(""/TUNAI"",RC[-3],1)-5,5),IFERROR(MID(RC[-3],SEARCH(""/BRI"",RC[-3],1) 17,7),IFERROR(MID(RC[-3],SEARCH(""/MS?"",RC[-3],1) 1,6),IFERROR(MID(RC[-3],SEARCH(""/MM?"",RC[-3],1) 1,7),IFERROR(MID" amp; "SEARCH(""/BM"",RC[-3],1) 1,5),IFERROR(MID(RC[-3],FIND(""/KS"",RC[-3],1) 1,5),IFERROR(MID(RC[-3],SEARCH(""/BR"",RC[-3],1) 1,5),IFERROR(MID(RC[-3],SEARCH(""/BG"",RC[-3],1) 1,5),IFERROR(MID(RC[-3],SEARCH(""/T?"",RC[-3],1) 1,7),""""))))))))))))"
 

Выделение ошибки происходит из активной ячейки.Формула 1С1. Может ли кто-нибудь здесь помочь мне с этой ошибкой? Потому что эта формула работает хорошо, если я вручную введу ее в ячейку. Я просто пытаюсь автоматизировать форматирование с помощью макроса в Excel.

Комментарии:

1. Не могли бы вы, пожалуйста, опубликовать свою фактическую формулу в ячейке М2?

2. Это моя настоящая формула =IFERROR(MID(J2;SEARCH(«/BRI/AC»;J2;1) 8;7);IFERROR(MID(J2;SEARCH(«TG00006»;J2;1);7);IFERROR(MID(J2;SEARCH(«CA002»;J2;1);5);IFERROR(MID(J2;SEARCH(«/TUNAI»;J2;1)-5;5);IFERROR(MID(J2;SEARCH(«/BRI»;J2;1) 17;7);IFERROR(MID(J2;SEARCH(«/MS?»;J2;1) 1;6);IFERROR(MID(J2;SEARCH(«/MM?»;J2;1) 1;7);IFERROR(MID(J2;SEARCH(«/BM»;J2;1) 1;5);IFERROR(MID(J2;FIND(«/KS»;J2;1) 1;5);IFERROR(MID(J2;SEARCH(«/BR»;J2;1) 1;5);IFERROR(MID(J2;SEARCH(«/BG»;J2;1) 1;5);IFERROR(MID(J2;SEARCH(«/T?»;J2;1) 1;7);»»))))))))))))

3. Я использую эту формулу для извлечения кода клиента из поля описания в столбце J

4. Замените ActiveCell.FormulaR1C1 = в своем коде на Debug.Print (за которым следует ваша формула). Это выведет строку формулы, которую вы на самом деле записываете в ячейку на панели «Непосредственно». Вы увидите, что кавычки не такие, как вы ожидаете. Вам нужно избежать их, то есть поместить кавычки в кавычки в строке формулы. Debug.Print """" выведет одинарную кавычку на ближайшую панель

5. @Variatus Я уже попробовал ваше предложение с помощью отладки. Распечатайте, чтобы увидеть фактическую формулу, отображаемую на панели «Непосредственно». Но я думаю, что с моей формулой все в порядке, я уже сверяюсь со своей оригинальной формулой на другом листе. Потому что я сделал эти формулы с помощью макрорегистратора (я помещаю ячейку в М2, нажимаю F2, а затем вводю, а затем останавливаю запись), а затем использую сформированную активную ячейку. FormulaR1C1 на другом листе (мой автоматический файл Xlsm) как часть последовательности форматирования