在vba中有没有相当于readline的命令?

时间:2015-10-05 04:43:43

标签: vba readline immediate-window

在VBA中是否有与Java的readLine等效的命令。 我想在立即窗口中使用文本输入并将其放在变量中。 有可能吗?

2 个答案:

答案 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

例如:

enter image description here

除此之外 - 您可以将输入收集阶段移动到以控制台模式运行的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"

enter image description here