如何将Excel单元格区域的公式存入Variant数组并回写?
解决VBA中ListObject数据存入数组并保留公式回写的问题
要保留单元格的公式,只需将代码中的Value2属性替换为Formula属性即可——Formula会同时存储单元格的公式(若单元格包含公式)和常量值,回写时就能完整还原原内容。
修改后的代码示例:
Dim arr As Variant Dim r As Range Set r = ActiveSheet.ListObjects(1).DataBodyRange arr = r.Formula r.Formula = arr
补充说明:
- 如果需要适配本地语言的公式(比如中文环境下的函数名),可以改用
FormulaLocal属性替代Formula - 若习惯使用R1C1格式的公式,可使用
FormulaR1C1属性 - 为避免
DataBodyRange为空时触发错误,建议增加非空判断:
Dim arr As Variant Dim r As Range Set r = ActiveSheet.ListObjects(1).DataBodyRange If Not r Is Nothing Then arr = r.Formula r.Formula = arr End If
内容的提问来源于stack exchange,提问作者71GA
相关产品推荐
相关产品推荐

