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

VBA数组存储输出结果问题:循环取值后写入Excel工作表

修正后的VBA代码实现需求
Sub myArrayRange()
    Dim resultArray() As Variant
    Dim i As Integer
    Dim ws As Worksheet
    
    ' 绑定Cashflows工作表,避免重复查找开销
    Set ws = ThisWorkbook.Worksheets("Cashflows")
    
    ' 初始化数组,匹配1-1000的循环次数(二维数组适配Excel单元格区域结构)
    ReDim resultArray(1 To 1000, 1 To 1)
    
    ' 执行1到1000的循环逻辑
    For i = 1 To 1000
        ' 给C3赋值当前循环数
        ws.Range("C3").Value = i
        ' 强制刷新工作表,确保C20的公式计算出最新值
        ws.Calculate
        ' 将C20的结果存入数组对应位置
        resultArray(i, 1) = ws.Range("C20").Value
    Next i
    
    ' 将数组内容批量写入工作表(示例写入当前工作表A1:A1000,可自行修改目标区域)
    ThisWorkbook.ActiveSheet.Range("A1:A1000").Value = resultArray
End Sub

关键修正说明

  • 数组逻辑重构:原代码错误用A列数据初始化数组,改为根据循环次数初始化固定长度的二维数组,适配Excel单元格区域的赋值规则
  • 工作表对象绑定:提前获取Cashflows工作表对象,减少重复调用的性能损耗
  • 计算刷新:添加ws.Calculate确保C3赋值后,C20的关联公式能即时计算出最新结果
  • 错误代码移除:删除原代码中iAmount = UBound(Model_cv, 1)这类逻辑错误的赋值语句
  • 批量写入优化:循环结束后一次性将数组写入目标区域,比逐单元格写入效率提升显著

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 00:32:05