Есть ли команда, эквивалентная readLine Java в VBA. Я хочу использовать ввод текста в непосредственном окне и поместить его в переменную. Возможно ли это?есть ли какая-либо команда, эквивалентная readline в vba?
ответ
Я не совсем уверен, почему вам нужно писать из Immediate Window в переменную во время выполнения - это некоторые странные методы отладки?
Обычно, если вам нужно взять ввод, вы получите форму для взаимодействия с пользователем.
Однако, если вам нужно записать в переменную на время выполнения необходимо учитывать следующее:
Sub Main()
Dim immediateInput As String
Dim readImmediate As Boolean
Do While (readImmediate = False)
readImmediate = True
Loop
End Sub
теперь установить контрольную точку на линии readImmediate = true
и добавить immediateInput
в Дозоре. Поднимите оба окна и часы и запустите макрос.
Когда среда попадает в точку останова, введите ниже в окне Immediate:
immediateInput = "hello world"
Теперь посмотрим в часы; ваше значение immediateInput
должно быть "hello world"
.
Вы не можете использовать окно проверки в интерактивном режиме. Во-первых - во время работы подпрограммы он не будет принимать никаких ввода с клавиатуры. Тем не менее, вы можете использовать его для передачи данных суб или функции при его вызове, поэтому в некотором смысле вы можете «скопировать» данные, которые уже есть. Что-то вдоль этих линий:
Sub AddNums(ParamArray nums())
Dim total As Double
Dim i As Long
For i = 0 To UBound(nums)
total = total + nums(i)
Next i
Debug.Print total
End Sub
Например:
Кроме того - вы можете переместить входную фазу сбора в сценарий VBScript работает в консольном режиме, вызовите его из VBA, и используйте либо файл (который пишет сценарий), либо, возможно, буфер обмена, чтобы получить данные из сценария после его запуска. Это должно быть осуществимо, хотя, вероятно, лучше найти более идиоматический (основанный на форме) способ сделать это в VBA.
[ReadLine] (https://msdn.microsoft.com/en-us/library/office/gg278803.aspx) - это метод VBA. – Jeeped
Я уверен, что ответ отрицательный: вы не можете использовать непосредственное окно в качестве интерактивной консоли. Что ты пытаешься сделать? Возможно, вы можете использовать пользовательскую форму. –
Я хочу использовать цикл для ввода данных от пользователя и поместить его в массив для вычисления общего (что-то вроде этого). Если я использую форму, мне придется создать бесконечное число. текстовых полей. Итак .. – Emi