这是一个黑客的Excel问题,当然不是标准程序。提前道歉。
在工作簿中,我有一个财务模型。它跨越三张:Revenue
和Expense
,它们都从Inputs
读取信息。这些床单一起构成了一个完整的模型。
我希望通过在第一个模型旁边创建一个重复的模型来扩展我的工作簿。我的想法是有可以比较的并排场景。 2组输入,2组费用计算和2组收入计算,每个计划在其各自的选项卡上并排设置。
通常情况下,我只会将公式复制到' bam'我有一个重复的模型。不幸的是,我无法做到这一点,因为我使用了大量$
字符,锁定了我的单元格引用。将Revenue
中的公式复制到右侧不会更改公式在Inputs
选项卡上引用的单元格。该模型足够大,手动删除每个公式的单元格引用锁需要数小时。
我目前的计划是使用VBA从公式中删除所有$
字符,然后继续使用复制粘贴方法。
答案 0 :(得分:5)
您可以按# input
these_letters = c("I", "f", " ", "a", " ", "p", "r", "o", "g", "r", "a", "m")
# desired_output
sentence = "If a program"
这将更改所有单元格显示其值以显示其公式。在此视图中,您可以按ctrl+'
将所有ctrl+H
替换为空,然后点击“全部替换”。
所以不需要在vba中编写所有代码,这本来是可能的,但可能有点复杂。
这将删除您要删除的所有美元符号。
请注意,如果您在新的无美元符号表中进行任何编辑推断公式,它可能是不正确的,因为它也会推断应该包含$的集合引用。
答案 1 :(得分:1)
用于删除Excel中外部链接路径中的$
-
Sub ExtLinks_RelativePaths()
此宏通过从单元格引用中删除$
,将所选单元格中的外部链接转换为相对链接
'来源:todd.kluge@merrillcorp.com
Dim myCells As Range, curCell As Range
Dim myVal As Boolean
Application.DisplayAlerts = False
Application.EnableEvents = False
Application.ScreenUpdating = False
Set myCells = ActiveSheet.UsedRange
On Error Resume Next
For Each curCell In myCells
curCell.Select
myVal = IsFormula(curCell)
If myVal = True Then
With Selection
.replace What:="$", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByColumns, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
End With
End If
Next curCell
Application.DisplayAlerts = True
Application.EnableEvents = True
Application.ScreenUpdating = True
MsgBox ("Formulas on the active sheet now have relative references.")
End Sub
Function IsFormula(cell_ref As Range)
IsFormula = cell_ref.HasFormula
End Function