Vba Excel如何替换列中所有单元格中公式的一部分

Vba Excel如何替换列中所有单元格中公式的一部分,vba,excel,Vba,Excel,我正在尝试替换=“试算平衡”!E2+试算平衡!E3与=“试算平衡”!C2+‘试算平衡’!Excel中的C3 如何将列中所有行中的公式从“E”更改为“C” 我已经写了一个VB宏,但我认为它是错误的。谁能帮我纠正一下吗 Sub RoundToZero2() For Each C In Worksheets("BalanceSheet").Range("BU8:BU103").Cells If E Then c.Value = C Next End Sub 我还遇到了

我正在尝试替换
=“试算平衡”!E2+试算平衡!E3
=“试算平衡”!C2+‘试算平衡’!Excel中的C3

如何将列中所有行中的公式从“E”更改为“C”

我已经写了一个VB宏,但我认为它是错误的。谁能帮我纠正一下吗

Sub RoundToZero2()
    For Each C In Worksheets("BalanceSheet").Range("BU8:BU103").Cells
        If E Then c.Value = C
    Next
End Sub

我还遇到了excel公式中内置的
SUBSTITUTE
REPLACE
函数。我也可以用这些吗?

只要你的公式中除了要替换的大写字母外没有其他大写字母“E”。这就行了

Sub RoundToZero2()
    Dim formstr As String
    For Each c In Worksheets("BalanceSheet").Range("BU8:BU103").Cells
        formstr = c.Formula
        formstr = Replace(formstr, "!E", "!C", , , vbBinaryCompare)
        c.Formula = formstr
    Next
End Sub
用这个

Worksheets("BalanceSheet").Range("BU8:BU103").Replace "'!E","'!C"

是的,我建议你,把它换掉!带“!C也许吧。我想你可以在整个范围内完成,所以工作表(“Sheet4”).range(“BU8:BU103”).replace“!e”,“!c”我得到的下标超出了范围?我试着用ctrl+q作为按钮将其添加到宏中,错误是:@user2769025 my bad,我忘了将您的工作表名称放回宏中。看见Edit@Nathan_Sav关于<代码>的伟大建议!E。我已注册成立公司。我需要立即测试整个范围,您可能是对的,我从未用公式尝试过。@Nathan_Sav请提供您的完整范围替换作为答案。它工作起来比循环快。