You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让指定Excel公式运行直至返回值≤25?

实现Excel随机取值直到结果≤25的VBA方案

方案1:使用 Do...Loop 循环(更贴合需求逻辑)

这种循环会直接判断结果是否满足条件,直到拿到符合要求的值,逻辑更直观:

Sub GetRandomValueUntil25()
    Dim randomVal As Variant
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("Sheet1")
    
    ' 循环直到获取到≤25的数值
    Do
        ' 计算指定区域的随机值
        randomVal = Application.Index(ws.Range("A1:F15"), Application.RandBetween(1, 15), Application.RandBetween(1, 6))
        ' 加入防死循环判断,最多尝试1000次
        Static attemptCount As Integer
        attemptCount = attemptCount + 1
        If attemptCount >= 1000 Then
            MsgBox "尝试1000次仍未找到符合条件的值,已终止"
            Exit Sub
        End If
    Loop Until randomVal <= 25
    
    ' 将结果写入目标单元格(示例为Sheet2的A1,可自行修改)
    ThisWorkbook.Worksheets("Sheet2").Range("A1").Value = randomVal
    MsgBox "找到符合条件的值:" & randomVal
End Sub

方案2:使用 For...Next 循环(满足你的需求偏好)

如果一定要用For...Next,可以设置足够大的循环次数,在循环内判断是否符合条件,符合就提前退出:

Sub GetRandomValueWithForLoop()
    Dim randomVal As Variant
    Dim ws As Worksheet
    Dim i As Integer
    Set ws = ThisWorkbook.Worksheets("Sheet1")
    
    ' 设置最多循环1000次,避免无限循环
    For i = 1 To 1000
        randomVal = Application.Index(ws.Range("A1:F15"), Application.RandBetween(1, 15), Application.RandBetween(1, 6))
        If randomVal <= 25 Then
            ' 写入结果并退出循环
            ThisWorkbook.Worksheets("Sheet2").Range("A1").Value = randomVal
            MsgBox "找到符合条件的值:" & randomVal & "(尝试次数:" & i & ")"
            Exit For
        End If
    Next i
    
    ' 如果循环结束仍未找到
    If i > 1000 Then
        MsgBox "尝试1000次仍未找到符合条件的值"
    End If
End Sub

使用说明

  1. 打开Excel,按下Alt + F11打开VBA编辑器
  2. 右键点击当前工作簿,选择「插入」→「模块」
  3. 将上述代码粘贴到模块中
  4. 按下F5运行宏,或回到Excel界面通过「开发工具」→「宏」选择对应宏运行

注意事项

  • 确保Sheet1的A1:F15区域包含数值型数据,否则可能返回错误值
  • 设置最大尝试次数是为了防止区域内没有≤25的值导致无限循环,可根据实际情况调整次数

内容的提问来源于stack exchange,提问作者OmNamohBhagwateVasudevaye

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 05:10:30