代码之家  ›  专栏  ›  技术社区  ›  Juan Carlos

将数值添加到特定单元格上的添加公式

  •  0
  • Juan Carlos  · 技术社区  · 3 年前

    我试图在VBA Excel中创建一个宏,允许我在特定单元格中生成一个简单的和(使用+符号);保留单元格公式中的所有数字。我的意思是我需要输出公式“保持” 在一定范围内。数字应自动添加到+公式中。一个特殊限制是,如果该范围的单元格中没有数字,则公式不应包含“0”。

    例如,下面显示的数据是一个范围(A1:A7)内的数字或总和:

    A1: 5
    A2: 7,5   --> =5+2,5
    A3:
    A4: 1
    A5: 1     --> =3-2
    A6:
    A7: 5,5
    
    • 式中A2:=5+2,5和A5:=3-2。其他术语只是数字。

    • 示例范围=A1:A7

    • B1(或单元格(1、2))上宏的公式输出 应该是:

      =5 + 5 + 2,5 + 1 + 3 - 2 + 5,5 (20)

    • 伪代码应该是这样的: 对于i=1到7->细胞(1,2)。FormulaLocal=如果单元格(i,1)是一个数字(或带有值的现有加法公式),则添加到当前公式。如果为空或0,请跳到下一个i(或行)。

    • 输出:公式“=Value1(5)+公式2(5+2,5)+Skip0Value3()+ 价值4(1)等等。。

    我已经尝试了以下代码,并取得了部分积极的结果:

    Sub summanual()
    Dim i As Integer
    Dim y As String
    
        For i = 1 To 7
        
        
            If Cells(i, 1) <> 0 Then
            y = Cells(i, 1)
            Cells(1, 2).FormulaLocal = Cells(1, 2).FormulaLocal & "+" & y
            End If
          
        Next i
        
        If Cells(1, 2) <> 0 Then
        Cells(1, 2).FormulaLocal = "=" & Cells(1, 2).FormulaLocal
        Else
        Cells(1, 2) = ""
        End If
    
    End Sub
    
    1. 这只适用于正值。添加负数值 比如输出公式中的“+-”。
    2. 输出公式仅存储原始单元格的结果。前任: A2是5+2,5,但它是像7,5一样加起来的。应该分开。同样的 A5。
    3. 在这种情况下,可以将“y”变量声明为字符串吗?
    4. 还有其他优化吗?也许有一个完全不同的 以更好更快的结果接近?刚刚使用vba excel

    任何帮助都将不胜感激 谢谢

    0 回复  |  直到 3 年前