Excel VBA引用单元格赋值矩阵公式如何无需手动回车自动生效
问题原因
你遇到的是文本型公式没有被Excel识别为可执行公式的问题,根源有两个:
- 你将存储公式的数组声明为
String类型,赋值给单元格时Excel会默认将内容识别为文本,不会自动触发公式解析 - 直接给Range对象赋值字符串内容时,没有指定写入公式的属性,导致公式没有被激活
修复方案
以下是适配你需求的修复后代码,写入后矩阵会自动和B1联动,修改B1值时所有矩阵单元格自动更新,不需要手动回车确认,同时支持直接扩展到40×40的矩阵场景:
Sub matrix2() ' 数组改为Variant类型兼容公式格式,要生成40×40矩阵时只需把2改为40即可 Dim matrix(1 To 2, 1 To 2) As Variant Dim i As Integer, j As Integer, k As Integer For i = 1 To 2 For j = 1 To 2 k = (-1) ^ (i + j) matrix(i, j) = "=B1*" & k Next j Next i ' 用Formula属性批量写入公式,直接触发Excel公式识别 Range("D1:E2").Formula = matrix End Sub
如果需要生成40×40矩阵,只需把数组声明的维度、循环的终止值改为40,同时修改写入的Range范围为对应大小的区域即可,1600个单元格的批量写入效率很高,不会有卡顿问题。
内容的提问来源于stack exchange,提问作者nicomedian
相关产品推荐
相关产品推荐

