簡體   English   中英

自動將excel表格公式從顯式單元格引用轉換為結構化單元格引用?

[英]Convert automatically excel table formulas from explicit cell reference to structured cell reference?

我有一個帶有公式的excel表格,例如

=M9-C9*10-D9*10-C9*H9/100

我想將這些公式轉換為使用在公式中使用表格列名稱的結構化單元格引用,就像這個假公式:

=[Sales Amount]-[Profit]*10-[Costs]*10-[Profit]*[Risk]/100*10-[Capital]*[Gross]/100

有沒有辦法自動轉換所有顯式列名(M9)以使用結構化引用([銷售額])。

通過並手動執行它很容易出錯。

(有關對 Excel 表格使用結構化引用的信息)

編輯:您可以遍歷要替換的顯式單元格引用。 在玩這個之前,一定要備份你的文件!

Sub replaceformulas2()
    Dim c As Object

    For Each c In Selection.Cells
        With c

            .Formula = Replace(.Formula, "$", "") 'delete the cell-fixation
            .Formula = Replace(.Formula, "E2", "Yourtable[Sales Amount]")
            .Formula = Replace(.Formula, "F2", "Yourtable[Profit]")
            ' ...and so on

        End With
    Next c
End Sub

注意:

  • 您可以添加更多表達式來替換
  • 意識到由於顯而易見的原因,您必須先替換A10BA5類的單元格,然后才能替換A1B5類的單元格。 對於A1:A100等范圍也是如此。
  • 您可能想要使用Table1.UsedRange.CellsTable1.Range("A1:B100").Cells東西,而不是Selection.Cells
  • 您可以首先Debug.Print .Formula來概覽您擁有的所有不同公式
  • 如果你喜歡你可以
    • 遍歷表頭
    • 獲取A1 -標題的坐標
    • 復制要替換的A1字符串,例如,將它們調整到第 9 行,就像您的示例一樣
    • 用標題單元格的.Value替換 to-replace 字符串的任何出現
    • 然而,這對於工作簿的一次性大修來說可能太費力了

我知道這是不久前被問到的,但我剛剛解決了這個問題。 我想我會分享如何。

首先將您的數據轉換為表格。 (如果您願意,您可以創建多個表,但您隨后需要將表名指定為該序列更下方的引用的一部分)。

在單獨的工作表中,我創建了一個包含兩列的參考表,包括舊參考和新參考。 為了生成舊的引用,我使用了列的等式:

=SUBSTITUTE(ADDRESS(1,COLUMN(),4),"1","") 

然后將其連接到第一行的編號。

[感謝: https : //www.excelforum.com/excel-general/857983-how-to-return-the-column-letter-of-cell-reference.html]

對於第二列,我使用了copy and paste special; values; transpose copy and paste special; values; transpose 從我想要創建結構化引用的表格標題copy and paste special; values; transpose

然后我從這里使用了宏Sub Multi_FindReplace()https : Sub Multi_FindReplace()

就是這樣。 完成第一行。 然后我可以填寫行來完成表格。

(注意,如果您有固定引用(即使用$ ),那么您可能需要先刪除那些,因為結構化引用中不需要它們。如果您需要對表外位置的固定引用,您可以使用如果您不小心刪除了它們,請按照上述過程將它們放回原處。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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