在VBA中是否有与Java的readLine等效的命令。 我想在立即窗口中使用文本输入并将其放在变量中。 有可能吗?
答案 0 :(得分:4)
您不能以交互方式使用立即窗口。首先 - 当子运行时,它不会接受任何键盘输入。但是,当您调用数据时,可以使用它将数据传递给子或函数,因此从某种意义上说,您可以“抓取”已存在的数据。这些方面的东西:
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中找到更习惯的(基于表单的)方式可能更好。
答案 1 :(得分:3)
我不太清楚你为什么需要在运行时将立即窗口写入变量 - 这是一些奇怪的调试实践吗?
通常情况下,如果您需要输入,最终会找到与用户互动的表单。
但是,如果您确实需要在运行时写入变量,请考虑以下事项:
Sub Main()
Dim immediateInput As String
Dim readImmediate As Boolean
Do While (readImmediate = False)
readImmediate = True
Loop
End Sub
现在,在readImmediate = true
行设置一个断点,并将immediateInput
添加到Watch。打开立即窗口和手表并运行宏。
当运行时命中断点时,在立即窗口中输入以下内容:
immediateInput = "hello world"
现在看看手表;您的immediateInput
值应为"hello world"
。