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

如何修改Excel VBA的InBetween UDF以支持小数而非仅整数?

修复VBA函数处理小数的问题

原函数的核心问题是参数被定义为Integer类型,会自动截断小数部分,导致输入3.5时被转为3、6.5转为6,进而计算出的中间值范围错误。以下是修复方案:

  • 将参数类型改为Double,支持小数输入
  • 计算范围时,取大于MyFirst的最小整数作为起始值,小于MyLast的最大整数作为结束值
  • 处理起始值大于等于结束值的边界情况,避免返回无效内容

修复后的代码:

Function InBetween(MyFirst As Double, MyLast As Double) As String
    Dim foo As String
    Dim startNum As Long
    Dim endNum As Long
    Dim i As Long
    
    ' 确定有效整数范围
    startNum = WorksheetFunction.Ceiling(MyFirst, 1)
    endNum = WorksheetFunction.Floor(MyLast, 1)
    
    ' 无有效中间值时返回空字符串
    If startNum >= endNum Then
        InBetween = ""
        Exit Function
    End If
    
    ' 初始化结果并遍历拼接
    foo = CStr(startNum)
    For i = startNum + 1 To endNum
        foo = foo & "," & CStr(i)
    Next i
    
    InBetween = foo
End Function

测试验证

  • 输入=InBetween(3.5,6.5),返回4,5,6,符合预期
  • 输入=InBetween(-2.3,1.7),返回-2,-1,0,1
  • 输入=InBetween(2.1,2.9),返回空字符串(无有效中间整数)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 18:39:57