我有一个 Excel 表格,其中包含以下公式
=M9-C9*10-D9*10-C9*H9/100
我想将这些公式转换为使用在公式中使用表列名称的结构化单元格引用,例如这个假公式:
=[Sales Amount]-[Profit]*10-[Costs]*10-[Profit]*[Risk]/100*10-[Capital]*[Gross]/100
有没有办法自动将所有显式列名称(M9)转换为使用结构化引用([销售金额])。
手动执行很容易出错。
(有关信息对 Excel 表格使用结构化引用 https://support.office.com/en-us/article/Using-structured-references-with-Excel-tables-f5ed2452-2337-4f71-bed3-c8ae6d2b276e)
Edit:您可以迭代要替换的显式单元格引用。在玩这个之前请确保备份您的文件!
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
Note:
- 您可以添加更多表达式来替换
- 意识到你必须更换细胞,例如
A10
or BA5
before替换类似的东西A1
or B5
出于显而易见的原因。对于像这样的范围也是如此A1:A100
.
- 代替
Selection.Cells
你可能想使用类似的东西Table1.UsedRange.Cells
or Table1.Range("A1:B100").Cells
- 你可以
Debug.Print .Formula
首先概述您拥有的所有不同公式
- If you're fancy you could
- 循环表头
- get
A1
- 标题的坐标
- 复制
A1
- 你想要替换的字符串,例如,将它们调整到第 9 行,就像你的示例一样
- 将任何出现的要替换字符串替换为
.Value
标题单元格的
- 然而,对于一次性修改工作簿来说,这可能太过费力
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)