Excel VBA-用其他公式替换小计函数

Excel VBA-用其他公式替换小计函数,excel,vba,Excel,Vba,我有一个Excel VBA,它在VBA中使用范围小计函数。一切都很好,但我需要在一些列上做的是用不同的公式替换一些列上的小计公式 我之所以需要这样做,是因为在其他列上,我需要小计结果,然后才能执行不同的计算 我试过用Replace,但我的新配方没有显示出来 我想做什么 Selection.Replace What:="SUBTOTAL(9", Replacement:="RC[-1]/RC[-2]", _ LookAt:=xlPart, SearchOrder:=xlByRows, MatchC

我有一个Excel VBA,它在VBA中使用范围小计函数。一切都很好,但我需要在一些列上做的是用不同的公式替换一些列上的小计公式

我之所以需要这样做,是因为在其他列上,我需要小计结果,然后才能执行不同的计算

我试过用Replace,但我的新配方没有显示出来

我想做什么

Selection.Replace What:="SUBTOTAL(9", Replacement:="RC[-1]/RC[-2]", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

如何获取新公式?

当您用公式替换单元格时,如果结果不是有效公式,我认为不允许进行替换。给定
小计的格式
您的原始公式如下

=小计(9,C100:C150)

而你的替换会导致

=RC[-1]/RC[-2],C100:C150)

这不是一个有效的公式

如果我理解正确的话,你想要这样的东西

=小计(9,C100:C150)

变成这样

=RC[-1]/RC[-2]

为此,您可以使用
Find
搜索所选单元格,查看公式中是否有“小计(9)”。如果是,则用所需公式替换整个公式。请参见下面的示例

Dim myRange As Range
Dim searchResult As Range

Set myRange = Selection
Set searchResult = myRange.Find(What:="SUBTOTAL(9", LookIn:=xlFormulas)

Do While Not searchResult Is Nothing
    searchResult.Formula = "=RC[-1]/RC[-2]"
    Set searchResult = myRange.FindNext(searchResult)
Loop

原始公式的示例是什么,新公式的示例是什么?所有代码都是VBA,但小计只是按组将列中的一些值相加。我要放入列中的公式将C列的小计结果除以B列的小计结果,这是一个新公式公式需要添加到每个组中。因此,它不仅仅是几行。它可以用于任意数量的组Sunderstand,而是将“小计(9)”替换为“RC[-1]/RC-2]”将不会返回有效的公式。了解它会有所不同,如果您提供一个原始公式及其预期结果的示例,那么我可以更好地了解公式需要确定的内容,我想作为示例输入的公式是=C133/B133。这就是它。我会尝试一下,让您知道我是如何开始担心的,但它没有不起作用。在研究代码后,它将在列的每一行中放置公式。它只需要在每个组的小计所在的列的行中。好的,我假设只选择了一个单元格。我已更新代码,以查找所选范围内具有“小计(9)”的每个单元格在公式中,并将其替换为公式。