[英]Excel - Substitute a Cell-Based Formula to the Actual Cell Values
有沒有一種方法可以轉換基於單元格的公式,以便將該公式中的單元格替換為其實際值? 沒有自動完成?
這是一個示例,可以說公式是:
=A1+A2+B6
和...
A1=2, A2=5 and B6=21.
我該如何改變我的公式。
=A1+A2+B6
...對此...
=2+5+21
...無需手動進行? 我相信有辦法。
謝謝。
這適用於所有公式參考都在同一張紙上的簡單情況。 我使用DirectPrecedents
范圍,但這將您限制在同一張紙上的優先單元格中。
在我的示例中,這在Sheet1
| A |
--+---------------------------------------------+
1 | 2 |
2 | 4 |
3 | 6 |
4 | =Sheet1!A3+(A1^Sheet1!A1)+Sheet1!A2/(A3+A2) |
5 | =SUM(A1,A2,A3)/COUNT(A1,A2,A3) |
請注意混合的單元格引用,其中包括帶有命名工作表前綴的單元格。
我使用此VBA代碼:
Option Explicit
Sub Test()
PrintResolvedFormula Range("A4")
PrintResolvedFormula Range("A5")
End Sub
Sub PrintResolvedFormula(rng As Range)
If rng.HasFormula Then
Dim formula As String
formula = rng.FormulaR1C1
Dim cel As Range
For Each cel In rng.DirectPrecedents.Cells
formula = Replace(formula, cel.Worksheet.Name & "!", vbNullString)
formula = Replace(formula, cel.Address(False, False, xlR1C1, False, rng), cel.Text)
Next cel
Debug.Print formula
Else
Debug.Print rng.Value
End If
End Sub
並獲得以下輸出:
=6+(2^2)+4/(6+4)
=SUM(2,4,6)/COUNT(2,4,6)
請注意,這會將單元格引用解析為值,但不會將函數解析為值。 要解析單個功能,您需要分解功能字符串並使用Application.Evaluate
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.