VBA怎么按条件循环输出语句

问题: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窗口显示循环执行所需时间。

所以,总结来说,你可以:

  1. 使用For循环按条件循环输出
  2. 使用Debug.Print在Immediate窗口打印输出内容
  3. 调整Debug.Print数量控制每页显示内容
  4. 使用Timer时间戳来显示循环执行时间

这些技巧可以帮助你在VBA中实现按条件循环输出并显示在一页上的效果。