Умножьте два значения текстового поля и покажите сумму в третьем текстовом поле - PullRequest
2 голосов
/ 23 января 2020

Мне нужно умножить значения двух текстовых полей и отобразить сумму в третьем текстовом поле в Word.

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

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

Я пытаюсь умножить результаты, введенные в текстовые поля Word (устаревшие формы, поля текстовых форм), отмеченные закладкой «Text61» и «Amount247», отображающие результаты в текстовом поле одного типа, помечены закладкой «Text71».

Sub MultiplyTotal()
Dim ff As String
ff = ActiveDocument.FormFields("Text61").Result
ff = ActiveDocument.FormFields("Amount247").Result
ff = ActiveDocument.FormFields("Text71").Result = ("Text61") * ("Amount247")
End Sub

1 Ответ

0 голосов
/ 26 января 2020

Код в вопросе находится на правильном пути для выполнения вычисления, ему просто нужно использовать переменную (и) для получения результатов и выполнения вычисления немного по-другому.

Требуется одна переменная для каждого элемента, который будет включен в расчет.

Поскольку вычисления выполняются с числами, также полезно принудительно преобразовать текст (String) в числовое значение (функция Val), хотя, если пользователь осторожен, в этом нет особой необходимости VBA - но хорошая привычка.

Sub CalculateFF()
    Dim ff1 As String, ff2 As String
    ff1 = ActiveDocument.FormFields("Text61").Result
    ff2 = ActiveDocument.FormFields("Amount247").Result
    ActiveDocument.FormFields("Text71").Result = Val(ff1) * Val(ff2)
End Sub

Обратите внимание, что не обязательно использовать код для выполнения простых вычислений в документах Word, содержащих поля форм, где активирована защита форм. Можно использовать поле формы типа calculation, которое выполняет вычисление без кода. Если такой подход представляет интерес, спросите у конечного пользователя, такого как Super User.

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