Вставка значений TextBox в формулу - PullRequest
0 голосов
/ 02 августа 2020

Я надеялся, что вы поможете мне найти решение для моего макрокодирования. Значения текстового поля не вводятся в формулу при вставке в активную ячейку.

Вот моя кодировка:

ActiveCell.Formula = “=“”BOX “”&IF(OR(M3=1,M3=3),N3+TextBox1,N3-TextBox1)”

Я хочу, чтобы конечный результат ячеек выглядел примерно так: BOX 20

Спасибо

Ответы [ 2 ]

0 голосов
/ 02 августа 2020

Именованные диапазоны и настройки управления

Настройка именованных диапазонов и параметров управления

Именованные диапазоны • Поле • Выбранные фрукты • Фрукты

Настройки

• Текстовое окно: - LinkedCell = Box • Combobox

  • LinkedCell
  • ListFillRange

Хитрость заключается в использовании именованных диапазонов и параметров управления. VBA не требуется!

0 голосов
/ 02 августа 2020

Не используйте эти причудливые кавычки, поскольку VBA их не понимает.

Переменные не могут быть внутри кавычек, поэтому используйте вместо них:

ActiveCell.Formula = "=""BOX ""&IF(OR(M3=1,M3=3),N3+" & TextBox1 & ",N3-" & TextBox1 & ")"

Имейте в виду, что если ваш В текстовом поле есть что-то, кроме числа, или оно пустое, вы получите сообщение об ошибке.

If IsNumeric(TextBox1) Then
  ActiveCell.Formula = "=""BOX ""&IF(OR(M3=1,M3=3),N3+" & TextBox1 & ",N3-" & TextBox1 & ")"
Else
  MsgBox "'" & TextBox1 & "' is not a numeric value."
End If

Если вы сравните мой ответ с вашим вопросом, вы увидите, что ваша формула вся красная? Это означает, что все это часть литеральной строки, поэтому в ней нет переменных, и, поскольку ваше текстовое поле является переменной, оно должно быть вне кавычек.

В моем коде посмотрите, как TextBox1 переменная не красная?

...