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

Excel VBA如何循环实现多列指定区域除以列末值并输出到对应列

VBA 实现多列批量计算解决方案

你可以在外层新增一列循环变量,遍历A到L列(对应列号1~12),同时动态匹配输出列位置即可,优化后的代码如下:

Sub Divide_a_range_by_last_number()
    Dim i As Long ' 行循环变量
    Dim col As Long ' 源数据列循环变量
    Dim ws As Worksheet
    ' 提前绑定工作表,避免重复引用,提升运行效率
    Set ws = Worksheets("sheet1")
    
    ' 外层循环遍历A到L列(列号1到12)
    For col = 1 To 12
        ' 内层循环遍历2到9行的待计算值
        For i = 2 To 9
            ' 输出列规则:A列对应N列(14)、B列对应O列(15),依次向后偏移
            ' 输出行规则:源行2对应输出行1,以此类推,所以行号做减1处理
            ws.Cells(i - 1, 14 + col - 1).Value = ws.Cells(i, col).Value / ws.Cells(10, col).Value
        Next i
    Next col
End Sub

代码说明

  • 新增col变量作为源列的循环变量,遍历范围112对应AL列
  • 直接取各列第10行作为分母,比原代码的End(xlDown)稳定性更高,避免列中间存在空值时取错末尾单元格的问题
  • 如果后续列末尾值位置不固定,可以把分母部分替换为ws.Cells(ws.Rows.Count, col).End(xlUp).Value,自动识别每列最后一个有值的单元格作为分母

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 14:39:00