Excel用值替换公式

时间:2015-06-08 19:36:41

标签: excel vba excel-vba

我有一个Excel工作簿(1),大约有9张工作簿,可以从第二个工作簿中提取和操作数据(2)。

从工作簿(2)中提取数据后,我需要能够将工作簿(1)中的公式替换为公式生成的结果值,然后从此处保存工作簿(1)结果。

有没有可以为我做这个的宏?

2 个答案:

答案 0 :(得分:15)

在新工作簿上添加一些基本代码,例如:

Sub Value()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Sheets
    ws.UsedRange.Value = ws.UsedRange.Value
Next
End Sub

答案 1 :(得分:-1)

对我来说似乎有用的是使用concatenate()

因此,例如,我引用其他工作表中的单元格的公式为:

=arrayformula(iferror(index('To Be Processed'!X:X,small(if($A$1='To Be 
Processed'!$Y2,row('To Be Processed'!X:X)),row((2:2))),"")))

如果我改为公式:

=concatenate(arrayformula(iferror(index('To Be
Processed'!X:X,small(if($A$1='To Be Processed'!$Y2,row('To Be
Processed'!X:X)),row((2:2))),""))))

并将参考单元格的文本值放入我的第二张纸。

根据您填充表单的方式,这可能会有所帮助,也可能没有帮助 - 但我对VBA不太满意,这意味着我会手动执行更多操作:)