假设我有一个公式“=A1/5“我想将其更改为”=A1/sqrt(5“即在倒数第二个位置插入一些内容。
(随后我可以做一个简单的=单元格&”)”完成公式)。
我设法做到了,但是走了一条很长的路,所以想知道是否有人知道如何快速完成此操作。
我现在的做法是:
通过将“=”替换为“”来实现非形式化,也就是什么也没有。
通过 =LEFT(cell,LEN(cell)-1) 和 =RIGHT(cell,1) 分别提取字符串的左侧部分和最右侧部分
- 对于提取的最右边的部分(单个数字),我只需执行“sqrt(”&cell
- 然后我将“=”、提取的左侧部分和修改后的右侧部分连接在一起。
这是可行的,但正如你所看到的,它花费了相当多的工作。
答案1
这个小宏将为您完成工作:
Sub formulaFixer()
Dim s As String
s = ActiveCell.Formula
arr = Split(s, "/")
ActiveCell.Formula = arr(0) & "/SQRT(" & arr(1) & ")"
End Sub
它将转换:
=A1/5
进入:
=A1/SQRT(5)
事实上,它可以转换=something/something else
成=something/SQRT(something else)
如果有必要,我们可以将其循环到多个单元格中。