问题:VBA中,怎么按条件循环输出语句,输出后的在一页上?按某个条件判断,输出固定语句。
具体问题:100行的1-20中的随机数字,如果有11就弹出第几行有11。
在excel中写VBA,我暂时用的是MsgBox, 只能一个一个的弹出问题。
我想让所以问题都在一页上显示出来,不限制行数的。
问的这么空洞
那无非就是if配合给单元格赋值完成呗
该回答引用ChatGPT4与博主@晓码自在合作编写:
在VBA中,你可以使用For循环按条件循环输出语句。为了将输出显示在一页上,可以使用Immediate Window窗口。具体代码如下:
vb
Dim i As Integer
For i = 1 To 10 ' 循环10次
If i = 5 Then ' 当i=5时,输出语句
Debug.Print "This is output line " & i ' 在Immediate窗口输出
End If
Next
这段代码会在Immediate窗口重复输出10行,当i=5时会输出"This is output line 5"。
要显示更多信息,可以使用多个Debug.Print语句:
vb
For i = 1 To 10
If i = 5 Then
Debug.Print "This is output line 1 " & i
Debug.Print "This is output line 2 " & i
Debug.Print "This is output line 3 " & i
End If
Next
这会在Immediate窗口输出:
This is output line 1 5
This is output line 2 5
This is output line 3 5
你也可以使用Immediate窗口的时间戳显示来观察循环的执行时间:
vb
Dim start As Single
start = Timer ' 记录开始时间
For i = 1 To 1000000 ' 循环100万次
If i = 500000 Then ' 当i=50万时,输出语句
Debug.Print "This is output line " & i
End If
Next
Debug.Print Timer - start ' 输出循环执行时间
这会在Immediate窗口显示循环执行所需时间。
所以,总结来说,你可以:
这些技巧可以帮助你在VBA中实现按条件循环输出并显示在一页上的效果。