【问题标题】:VBA code, summing values in a single cell, of a row, and add with another cell with range of numbers in itVBA代码,对单个单元格中的值求和,一行,并与另一个单元格中的数字范围相加
【发布时间】:2018-12-19 19:30:59
【问题描述】:
Cell: S1 = 0.50   Cell T1 = 1.00   Cell U1 = 0.02
           0.50             0.05             0.63
           0.50             0.25             0.89

向右运行一个公式以找到“。”符号并使用中间公式提取数据。但是有些单元格中可以有 12 个值,而有些单元格中只有 1 个。我想要公式来查找单元格中的值的总数,并计算总数。

我没有密码

结果应将单元格中的总金额相加,并将金额与另一列相加,并创建第 4 列的总金额。

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    未经测试。如果我理解正确,单元格由换行符分隔。

    所以可能是这样的:

    Option explicit
    
    Private Sub SplitAndTotal()
    
    ' Change name of sheet as necessary
    With thisworkbook.worksheets("Sheet1")
    .range("V1").value2 = SplitIntoNumbersAndSum(.range("S1").value2) + _
    SplitIntoNumbersAndSum(.range("T1").value2) + _
    SplitIntoNumbersAndSum(.range("U1").value2)
    End with
    
    End sub
    
    Private Function SplitIntoNumbersAndSum(byval valueToSplit as variant, optional byval delimiter as string = vbnewline) as double
    
    Dim Total as double
    
    Dim arrayOfValues as variant
    arrayOfValues = split(valueToSplit, delimiter, -1, vbbinarycompare)
    
    Dim index as long
    For index = lbound(arrayOfValues) to ubound (arrayOfValues)
    If isnumeric(arrayOfValues(index)) then
    Total = total + cdbl(arrayOfValues(index))
    End if
    
    Next index
    
    SplitIntoNumbersAndSum = Total
    
    End function
    

    抱歉,格式和缩进不正确,不是在桌面上。

    如果函数不断返回零,请尝试检查/更改 delimiter

    您可能还想尝试直接从工作表本身将函数作为 UDF 调用(尽管您可能需要将函数的代码放在单独的模块中),而不是通过专用的宏/过程调用它。

    【讨论】:

      【解决方案2】:

      考虑使用非 VBA 解决方案,使用 EVALUATE 功能:

      【讨论】:

        【解决方案3】:

        不需要vba,这个公式就可以了:

        =SUMPRODUCT(--TRIM(MID(SUBSTITUTE(A1,CHAR(10),REPT(" ",99)),(ROW($A$1:INDEX($A:$A,LEN(A1)-LEN(SUBSTITUTE(A1,CHAR(10),""))+1))-1)*99+1,99)))
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-10-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多