在 VBA 中是否有等效于 Java 的 readLine 的命令。我想在即时窗口中使用文本输入并将其放入变量中。可能吗?
问问题
463 次
2 回答
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 中找到一种更惯用(基于表单)的方法可能会更好。
于 2015-10-05T10:26:57.307 回答
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"
。
于 2015-10-05T08:19:40.403 回答