向pre-exsting cell formular添加更多信息

时间:2018-02-08 11:38:31

标签: excel vba

我相信,凭借我对vba的有限知识,这是可能的。我正在尝试将更多信息添加到工作簿中的预先存在的公式中。

目前公式如下,在Cells(SnapshotStartRow-2,11)公式中= SUM(' GK034'!B5 +' GK034'!B21 +' GK034&# 39;!B34)

下一阶段是在等式中添加一个额外的单元格,看起来像是  = SUM(' GK034'!B5 +' GK034'!B21 +' GK034'!B34 +' GK034'!B50)

我的想法是在下面使用此代码;

    With Worksheets("Snapshot")
        sAddress1 = .Cells(SnapshotStartRow - 2, 11).Address(0, 0)
    End With
    With Worksheets(SnapshotArray(i, 1))
        sAddress2 = Worksheets(SnapshotArray(i, 1)).Cells(NewEngineRowNumber + 2, 2).Address(External = True)
    End With
    With Worksheets("Snapshot")
        sFormula = "=Sum(" & sAddress1 & "+" & sAddress2 & ")"
        .Cells(SnapshotStartRow - 2, 11).Formula = sFormula
    End With

有关此代码的一些信息,

SnapshotArray(i,1)是否有查找工作表的参考,并包含值GK034

SnapshotStartRow用于定义先前需要的行引用,等于125.

NewEngineRowNumber用于定义以前需要的adrress,等于48

代码背后的想法是采用当前的公式并且将新的单元格添加到其中。 然而,有几个问题我未能预见到,  首先,第一个带环的mearly取得了细胞的价值而不是现有的公式。  其次,方程式无法记住数据来自哪些表格。

一旦我运行了代码,我最终得到了正确的单元格(代码中唯一有效的部分)  = SUM(K123 + $ B $ 50)

其中K123是用于包含公式的正确单元格,而B50是不同工作表上的所需单元格。

但是K123现在为0而且$ B $ 50选择了所需的工作簿。

如果有人能够帮助我,那将会非常受欢迎。当我尝试新方法时,我会不断更新帖子。

做了一些更多的重新归来我相信我需要将当前公式提取为一个字符串,我相信可以用下面的函数来完成。

Function CellFormula(Rng As Range) As String
    CellFormula = Rng.Formula
End Function

然后你可以用正确的工作表添加新代码`$ b $ 50,然后以某种方式将新字符串粘贴到公式栏中吗?这甚至可能吗?

从QHar评论中,我尝试使用

连接工作表名称
With Worksheets(SnapshotArray(i, 1))
    sAddress2 = Worksheets(SnapshotArray(i, 1)).Name &  .Cells(NewEngineRowNumber + 2, 2).Address(External = yes)
End With

这也没有工作,并注意到方程的某些部分缺失,我试图手动添加它们,但这无效,见下文。

With Worksheets(SnapshotArray(i, 1))
    sAddress2 = "'" & Worksheets(SnapshotArray(i, 1)).Name & "'!" & .Cells(NewEngineRowNumber + 2, 2).Address(External = yes)
End With 

0 个答案:

没有答案