一次将多个单元格引用从相对更改为绝对($)

问题描述 投票:1回答:2

我在Excel电子表格中有以下值和公式:

          A                             
1      Shirt         =Sheet2!A2
2        50          =C1
3       350          =Sheet3!D7
4    Product B       =F8
5
6

通过仅使用相对单元格引用,列A中的值从Excel文件的其他部分获得。

现在我想将这些单元格引用从相对更改为绝对,所以它们看起来像这样:

          A                             
1      Shirt         =Sheet2!$A$2
2        50          =$C$1
3       350          =Sheet3!$D$7
4    Product B       =$F$8
5
6

因此,我尝试使用here的VBA:

Sub Test()
ActiveCell.Formula = Application.ConvertFormula(ActiveCell.Formula, xlA1, xlA1, 1)
End Sub

但是,它仅适用于活动单元格,但我希望VBA遍历整个工作表。因此,我尝试这样的事情:

Sub Test()
Sheet1.Formula = Application.ConvertFormula(Sheet1.Formula, xlA1, xlA1, 1)
End Sub

现在我收到错误“未找到对象或方法”。如何更改VBA才能使其正常工作?

excel excel-vba vba
2个回答
3
投票

立即改变这种情况是不可能的。需要在单个配方单元上进行一种循环。

你可以使用Range.SpecialCells Method获得特殊细胞。因此,您可以获取所有公式单元格,然后循环遍历它们并将它们转换为绝对值:

Sub convertAllSheetFormulasToAbsolute()
 Dim oCell As Range
 With ActiveSheet
  For Each oCell In .Cells.SpecialCells(Type:=xlCellTypeFormulas)
   oCell.Formula = Application.ConvertFormula(oCell.Formula, xlA1, xlA1, xlAbsolute)
  Next
 End With
End Sub

0
投票

作为替代方案,ASAP Utilities for Excel加载项提供了一个菜单命令,可将选定的单元格范围转换为绝对引用,混合引用或相对引用。多年来,它对我来说完美无瑕。

安装了加载项后,在“公式”菜单中,选择“更改公式引用样式(例如A1到$ A1等)。

© www.soinside.com 2019 - 2024. All rights reserved.