2015-10-05 35 views
4

是否存在与VBA中的Java的readLine等效的命令。 我想使用立即窗口中的文本输入并将其放入一个变量。 这可能吗?是否有任何命令等同于vba中的readline?

+1

[ReadLine](https://msdn.microsoft.com/en-us/library/office/gg278803.aspx)是一种VBA方法。 – Jeeped

+3

我很确定答案是否定的 - 您不能使用即时窗口作为交互式控制台。你想做什么?也许你可以使用一个用户窗体。 –

+1

我想用一个循环来输入用户的数据,并把它放在一个数组来计算总数(类似的东西)。如果我使用表格,我将不得不创造无限的否。的文本框。所以.. – Emi

回答

3

我不太清楚为什么你需要从立即窗口写入一个变量在运行时 - 是一些奇怪的调试实践?

通常情况下,如果您需要接受输入,您最终会得到一个与用户交互的表单。

但是,如果你确实需要在运行时写的一个变量考虑以下因素:

Sub Main() 

    Dim immediateInput As String 
    Dim readImmediate As Boolean 
    Do While (readImmediate = False) 
     readImmediate = True 
    Loop 

End Sub 

现在,在readImmediate = true行设置断点,并添加immediateInput到监视。调出立即窗口和手表并运行宏。

当运行时命中断点在立即窗口中输入以下:

immediateInput = "hello world"

现在在手表一看,你的immediateInput的值应该是"hello world"

enter image description here

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中找到一种更习惯(基于表单)的方式可能更好。

相关问题