Excel VBA: ошибка 1004 при попытке установить значение в диапазоне - PullRequest
1 голос
/ 30 марта 2020

У меня странная ошибка при попытке создать небольшой макрос. Я хочу создать значение для указанной c ячейки, то есть функции. Однако, когда я пытаюсь это сделать, он выдает ошибку 1004.

ThisWorkbook.Sheets("Systems").Range("C" & c.Row).Value = "=CELL(" & Chr(34) & "row" & Chr(34) & ";Articles!A" & c.Value

Статьи - это просто еще один лист. Chr(34) - это просто " char.

В этой строке выдается ошибка. Теперь я попытался заменить специальные символы командами Chr.

Следующая строка не дает мне ошибки

ThisWorkbook.Sheets("Systems").Range("C" & c.Row).Value = Chr(61) & "CELL"

Но эта ошибка:

ThisWorkbook.Sheets("Systems").Range("C" & c.Row).Value = Chr(61) & "CELL" & Chr(40)

Chr(61) это =, а Chr(40) это (.

Может кто-нибудь, пожалуйста, покажите мне способ обойти это? Я был бы очень рад. Использование Ofiice 2010.

1 Ответ

1 голос
/ 30 марта 2020

Просто удвойте кавычки "" внутри строки:

ThisWorkbook.Sheets("Systems").Range("C" & c.Row).Formula "=CELL(""row"",Articles!A" & c.Value & ")"

Также обратите внимание, что вы должны использовать .Formula, чтобы написать формулу в стандартном формате US-Engli sh или .FormulaLocal для написать формулу в вашем формате локализации.

Рекомендуется использовать стандартный формат США и .Formula, так как это будет работать во всем мире. Стандартный формат США использует ,, а не ; в качестве разделителя в формулах. Если вам сложно переводить формулы, используйте https://en.excel-translator.de

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...