Я сам пишу быстрое приложение - первый проект, однако я пытаюсь найти код VBA для записи результата входной строки в именованную ячейку в Excel.
Например, в поле ввода задается вопрос «Какой номер задания вы хотите добавить в список?» ... затем пользователь вводит ссылочный номер, такой как «FX1234356». Затем макросу необходимо записать эту информацию в ячейку, которую я затем могу использовать для завершения макроса (в основном для поиска в некоторых данных).


Вы можете использовать объект Range в VBA, чтобы установить значение именованной ячейки, как и любую другую ячейку.
Range("C1").Value = Inputbox("Which job number would you like to add to the list?)
Где «C1» - это имя ячейки, которую вы хотите обновить.
Мой Excel VBA немного староват и ненадежен, поэтому может быть лучший способ сделать это в более новых версиях Excel.
Спасибо за проверку. Я ненавижу публиковать старый код и, возможно, когда кто-то приходит и говорит: «Да, в 1900-х вы могли сделать это таким образом, но теперь ...». :)
Я проделал подобное с формой, содержащей TextBox.
Итак, если вы хотите поместить это, скажем, в ячейку H1, используйте:
ActiveSheet.Range("H1").Value = txtBoxName.Text
Я рекомендую всегда использовать именованный диапазон (как вы предложили), потому что, если какие-либо столбцы или строки будут добавлены или удалены, ссылка на имя будет обновлена, тогда как если вы жестко закодируете ссылку на ячейку (например, "H1", как предлагается в одном ответов) в VBA, то он не будет обновляться и укажет на неправильную ячейку.
Так
Range("RefNo") = InputBox("....")
безопаснее, чем
Range("H1") = InputBox("....")
Вы также можете установить значение нескольких ячеек.
Range("Results").Resize(10,3) = arrResults()
где arrResults - это массив из не менее 10 строк и 3 столбцов (и может быть любого типа). Если вы используете это, поместите это
Option Base 1
в верхней части модуля VBA, иначе VBA предположит, что массив начинается с 0, и поместит на лист пустую первую строку и столбец. Эта строка заставляет все массивы начинаться с 1 по умолчанию (что может быть ненормальным для большинства языков, но хорошо работает с электронными таблицами).
Когда пользователь запрашивает ответ для помещения в ячейку с помощью InputBox метод, обычно могут произойти три вещи¹.
Если вы помещаете возвращаемое значение в ячейку, ваш собственный логический поток будет определять, что вы хотите делать с последними двумя сценариями. Вы можете очистить ячейку или оставить ее содержимое в покое. Вот как обрабатывать различные результаты с помощью переменной типа варианта и Выберите оператор Case.
Dim returnVal As Variant
returnVal = InputBox(Prompt: = "Type a value:", Title: = "Test Data")
'if the user clicked Cancel, Close or Esc the False
'is translated to the variant as a vbNullString
Select Case True
Case Len(returnVal) = 0
'no value but user clicked OK - clear the target cell
Range("A2").ClearContents
Case Else
'returned a value with OK, save it
Range("A2") = returnVal
End Select
¹ There is a fourth scenario when a specific type of InputBox method is used. An InputBox can return a formula, cell range error or array. Those are special cases and requires using very specific syntax options. See the supplied link for more.
Название вопроса вводит в заблуждение. Ваш ввод не является целым числом.