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

求各列最小值的最大值:VBA代码输出异常求助

问题分析与代码修正

代码中的核心错误

  • 公式运算符错误:题目给定公式为 aij = 12 – 3i + j,但代码中写成了 a(i, j) = 12 - 3 * i - j,j 前的运算符应为+而非-,这是结果不符合预期的根本原因。
  • 变量声明不严谨:Dim i, j, m As Integer 仅将m声明为Integer类型,i和j默认是Variant类型,需明确声明所有变量的类型。
  • 命名冲突风险:max是VBA内置函数,用它作为数组名可能引发意外问题,建议改用语义更清晰的名称(如colMin)。

修正后的代码

Sub task1()
    Dim i As Integer, j As Integer, m As Integer
    Dim a(5, 5) As Integer
    Dim colMin(5) As Integer ' 替换原max数组名,避免内置函数冲突
    
    ' 按正确公式填充数组
    For i = 0 To 4
        For j = 0 To 4
            a(i, j) = 12 - 3 * i + j ' 修正j的运算符
        Next j
    Next i

    ' 计算每列的最小值
    For i = 0 To 4
        colMin(i) = a(i, 0)
        For j = 1 To 4
            If a(i, j) < colMin(i) Then colMin(i) = a(i, j)
        Next j
    Next i
        
    ' 找出各列最小值中的最大值
    m = colMin(0)
    For i = 1 To 4
        If colMin(i) > m Then m = colMin(i)
    Next i
    
    MsgBox m
End Sub

修正后运行代码,即可得到符合预期的计算结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 23:01:13