Синтаксическая ошибка в формуле слова

Обновлено: 02.07.2024

Я новичок в теме словесных формул, поэтому любая помощь приветствуется.

Заранее спасибо.

кевлрей

Зарегистрированный пользователь.

МайоRR5

Зарегистрированный пользователь.

Обновите, ребята. Я закончил удалять закладки ячеек и добавлять только закладки таблиц, а затем каждый раз ссылался на ссылку ячейки (PVTableB A2 и т. д.), и это сработало.

После выполнения упражнения я сделал следующие заметки:-

<р>1. Когда формула работала и я хотел ее проверить, я использовал кнопку формулы на ленте, чтобы просмотреть ее. Когда я был счастлив, я нажимал OK и получал синтаксическую ошибку. Эта процедура удаляла пробел между ссылкой на таблицу и ссылкой на ячейку, т.е.

=(SUM(PVTableB B2))*(SUM(PVTableC B7)) вернет правильный результат
=(SUM(PVTableBB2))*(SUM(PVTableCB7)) вернет синтаксическую ошибку

Убедитесь, что пробел остается на месте или отсутствует ссылка на ячейку. (Alt + F9 этого не делает)


2. В мои таблицы когда-либо вводились только числовые значения (помимо заголовков и т. д.), но для того, чтобы моя формула возвращала значение, основанное на них, мне приходилось СУММУЛИРОВАТЬ каждую отдельную ячейку отдельно в формуле, а затем добавлять/умножать их, т.е. /p>

=SUM(PVTableB B2)*(PVTableC B7) вернет синтаксическую ошибку
=(SUM(PVTableB B2))*(SUM(PVTableC B7)) вернет правильный результат

У меня нет причин, по которым первая попытка не сработала, потому что, насколько я могу судить, она верна.


3. В моем документе 4 таблицы, прибл. 100 ячеек все расчетные формулы (расчеты солнечной фотоэлектрической энергии) и я обнаружил следующую проблему. Когда я обновляю эти ячейки, кажется, что они обновляются построчно, а некоторые строки не обновляются. Это связано с тем, что ячейки выше ссылаются на ячейки ниже и не используют обновленные значения для обновления. Мое решение состояло в том, чтобы записать макрос, в котором я выбрал весь свой документ и несколько раз запускал функцию обновления (F9) (всего 10, на всякий случай) и назначал эту функцию сочетанию клавиш. В результате ячейки ссылались на обновленные данные и отображали правильные результаты.


Я обнаружил, что это упражнение заставило меня оценить такой инструмент, как MS Excel (и Access), потому что с таким количеством ячеек я не мог "скопировать" код по всей таблице. Мне пришлось вручную настроить ссылки на ячейки для каждой ячейки. Утомительное занятие, но оно того стоит для конечного продукта, где у меня есть профессиональный шаблон предложения, унифицированный (до того, как они стали электронной таблицей Excel, которая не выглядела бы как остальная часть предложения) и независимый от каких-либо других программ.

Я пытаюсь изменить ссылку, чтобы отображать только определенное количество символов текста слева от строки. Чтобы проверить свою формулу, я использовал следующий текст поля:

Когда я обновляю поле, я получаю результат "!Syntax Error, :". Я пробовал несколько комбинаций пробелов, кавычек и т. д., и я не могу заставить его работать. Кажется, что это должно быть что-то относительно простое. есть мысли?


Добро пожаловать в Super User. Я не думаю, что именно так используются коды полей. Похоже, в вашей формуле нет кода поля. Можете ли вы предоставить исходный код поля, который вы использовали до его изменения?

Спасибо! У меня было это: < =LEFT("< REF _Ref436832789 >", 10) > , что дает ожидаемый результат для вложенного поля, но выдает ошибку, когда формула переключается для просмотра результата.

Я просто так не работаю с полевыми кодами. К сожалению, я не смог найти ничего, что могло бы меня поддержать. Есть ли у вас что-то, чему вы следовали, что поручило вам построить код поля таким образом?

2 ответа 2

Поле = не позволяет использовать "любую старую функцию VBA". В нем есть только арифметические/логические операторы и функции (такие как MAX, MIN, SUM, PRODUCT и т. д.). В нем нет текстовых функций или операторов даты/времени.

Вы можете найти список доступных функций и операторов здесь.

[За исключением того, что в этом описании отсутствуют одна или две вещи — в Word поле = также имеет функцию ЕСЛИ ( < =ЕСЛИ(a,b,c)>, хотя она отсутствует в ECMA и ISO, а описание ссылок на таблицы неполное].

К сожалению, в Word нет другого типа поля, который надежно выполнял бы то, что вы хотите. Вы можете «почти» использовать поле DATABASE, чтобы сделать это, но это сложно, введет знак абзаца, от которого вы не можете избавиться в современных версиях Word, не будет работать в Mac Word (или онлайн-версиях, AFAIK) и не удастся, если, например, текст, который вы ОСТАВЛЯЕТЕ, содержит символ " (или, возможно, ').

Космо Windows Vista Office 2007

Мне пришлось создать поле, которое использует PageRef для закладки в формуле расчета.Все работает так, как мне нужно, но на случай, если закладка будет удалена или переименована конечным пользователем, я бы хотел, чтобы в расчете использовалось 0 в формуле вместо отображения синтаксической ошибки.

Как проверить формулу, существует ли закладка или есть ошибка?

макропод Windows 7 32-разрядная Office 2010 32-разрядная

Не видя код файла, о котором идет речь, трудно что-то советовать. Можете ли вы прикрепить документ к сообщению с кодом поля и закладкой (удалить все конфиденциальное)? Это можно сделать с помощью символа скрепки на вкладке "Дополнительно".

Космо Windows Vista Office 2007

Извините, вот базовый расчет, который я использую (мне нужно указать, сколько страниц существует от определенной точки до конца документа):

Если закладка 'FirstSectionBreak' переименована или отсутствует, я вижу синтаксическую или другую ошибку. Я хотел бы сделать что-то вроде этого (псевдокод):

макропод Windows 7 32-разрядная Office 2010 32-разрядная

Космо Windows Vista Office 2007

Спасибо, мне пока не очень повезло с этим, я не уверен, правильно ли я это ввожу. Я немного новичок в использовании полей и формул в Word, и я еще не совсем освоился с этим.

Это стало для меня академическим упражнением; потратив пару часов или около того на получение частей, над которыми я работаю, они просто решили удалить расчеты, над которыми я потратил так много времени.

макропод Windows 7 32-разрядная Office 2010 32-разрядная

Использовали ли вы Ctrl-F9 для всех фигурных скобок поля (т. е. < >)? Вы не можете просто напечатать их или скопировать и вставить с этого форума. Кроме того, все пробелы, указанные в коде, который я разместил, необходимы.

Космо Windows Vista Office 2007

Использовали ли вы Ctrl-F9 для всех фигурных скобок поля (т. е. < >)? Вы не можете просто напечатать их или скопировать и вставить с этого форума. Кроме того, все пробелы, указанные в коде, который я разместил, необходимы.

Да, это была одна из моих первых ошибок сегодня, когда я пытался понять, как делать более простые формулы. Получение вложенных полей было первоначальной проблемой, но я использовал Ctrl-F9, когда тестировал обновленную формулу. Возможно, это пункт «ЕСЛИ», который я делал неправильно. Я поэкспериментирую с этим в понедельник, чтобы проверить, не ошибся ли я.

И теперь клиент сделал еще 180 и решил заново вставить расчеты, так что это снова стало необходимостью. Клянусь, иногда они больше похожи на политиков, чем на клиентов.

Аль Нери

Бриллиантовый участник

Я выбираю Вставка – Поле – Формула и ввожу текст

Я получаю синтаксическую ошибку.

Когда я вставляю это в Excel, я получаю результат (26) — как мне заставить это работать — и обновлять по мере необходимости?

хтнайт

Элитный участник

Честно говоря, я бы просто сделал это в электронной таблице Excel, а затем связал таблицу из Word. Я считаю, что таким образом он все еще может обновляться в режиме реального времени, пока электронная таблица Excel также обновляется. Вы также можете использовать некоторые функции VBA Word, чтобы вставить элемент управления, который сделает это за вас.

Начало темы Похожие темы Форум Ответы Дата
D Вопрос Формула столбца Excel необъяснимым образом пропускает ячейку Windows 12 27 октября, 2021
K Вопрос Word Woes Windows 0 Jun 24, 2021

ПОПУЛЯРНЫЕ ТРЕКИ

  • Начало Халка
  • 28 октября 2021 г.
  • Ответы: 2 K
  • Инициатор Евгений
  • 10 ноября 2020 г.
  • Ответы: 3K
  • Инициировано TheF34RChannel
  • 18 июня 2017 г.
  • Ответов: 15 тыс.
  • Инициировано птичкой
  • 16 июля 2019 г.
  • Ответов: 5 тыс.
  • Инициировано Кедасом
  • 1 июня 2021 г.
  • Ответы: 2 K

AnandTech является частью Future plc, международной медиагруппы и ведущего цифрового издателя. Посетите наш корпоративный сайт.
© Future Publishing Limited Quay House, Амбери, Бат BA1 1UA.
Все права защищены. Регистрационный номер компании в Англии и Уэльсе 2008885.


AnandTech является частью Future plc, международной медиагруппы и ведущего цифрового издателя. Посетите наш корпоративный сайт.
© Future Publishing Limited Quay House, Амбери, Бат BA1 1UA. Все права защищены. Регистрационный номер компании в Англии и Уэльсе 2008885.

Читайте также: