我一直在寻找几个小时,我找不到解决这个问题的方法。
正如您在图像上看到的,我有3列2行。我的目标是将成本行(它有换行符)或将设备和成本列分成3个较小的行。这可能吗?
答案 0 :(得分:1)
不幸的是,根据我的知识,这并不是一种特别干净的方法。以下是您可以尝试的一些事项:
方法1 - 工作表解决方案
如果您的第一个成本单元格在A1中,则将光标放在单元格B1中,并使用以下公式创建一个新的命名范围:
=EVALUATE(SUBSTITUTE(A1,CHAR(10),"+"))
然后,您可以在单元格B1中键入命名范围的名称,然后按预期获得总和。不幸的是,你必须为此创建一个命名范围,因为EVALUATE
不能作为工作表函数使用 - 只有命名范围函数,也可以在VBA中使用。
我打电话给我的命名范围" eval"。您可以向下拖动此公式,它将填满,始终将单元格评估为左侧。
方法2 - VBA解决方案
您可以使用一些简单的VBA。将其粘贴到一个新模块中,然后在工作表上使用此公式,如下所示:
=SumAlt(A1)
如果A1
包含您的100 200 300
,将在您的示例中返回600
Function SumAlt(s As String) As Long
SumAlt = Evaluate(Replace(s, Chr(10), "+"))
End Function
答案 1 :(得分:1)
VBA中的这样的东西会起作用:
Function SumLines(ByVal str As String) As Long
Dim arr() As String
arr = Split(str, Chr(10))
For a = 0 To UBound(arr)
SumLines = SumLines + CLng(arr(a))
Next
End Function
但是,只有在除了数字和Chr(10)s(新行)之外没有任何字符时,这才有效。
然后在工作表中使用它,例如:
=SumLines(A1)