簡體   English   中英

Excel-將基於單元格的公式替換為實際的單元格值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM