我试图创建公式或宏来基于前面的非数字字符(使用Excel 2010)在单个单元格中对一系列数字进行求和。宏以根据同一单元格内的数据对数值进行求和?
例如,我有读取单元:
ABC1|HIJ2|ABC4|ABC3|DEF5|ABC2|DEF8|ABC5
但我需要它来阅读:
ABC15|DEF13|HIJ2
所有相关的数据是在一个单细胞的(主要是)随机顺序,所以问题是两层 - 首先自动字母化所有数据在单元格内,其次是总和所有“ABCs”,“DEFs”等。
我已经使用下面的代码(成功)自动字母化数据,但现在我有点不知所措,因为我的所有使用Google提示这种任务需要一个多任务处理,细胞溶液。
Sub Macro()
Dim Rng As Range
Dim WorkRng As Range
Dim Arr As Variant
On Error Resume Next
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Set objArrayList = CreateObject("System.Collections.ArrayList")
For Each Rng In WorkRng
Arr = VBA.Split(Rng.Value, "|")
For i = 0 To UBound(Arr)
xMin = i
For j = i + 1 To UBound(Arr)
If Arr(xMin) > Arr(j) Then
xMin = j
End If
Next j
If xMin <> i Then
temp = Arr(i)
Arr(i) = Arr(xMin)
Arr(xMin) = temp
End If
Next i
Rng.Value = VBA.Join(Arr, "|")
Next
End Sub
有没有办法做到这一点,同时保持最终结果局限于一个单元格?
预先感谢任何花时间帮助的人。
欢迎来到StackOverflow。请注意,这不是免费的代码写入服务。然而,我们渴望帮助其他程序员(和有志之士)编写他们自己的代码。请阅读[我如何提出一个好问题](http://stackoverflow.com/help/how-to-ask)上的帮助主题。您可能还想[参观](http://stackoverflow.com/tour)并在此过程中获得徽章。之后,请用您迄今编写的VBA代码更新您的问题,以完成您希望实现的任务(因为上述内容不能用公式解决)。 – Ralph
它总是三个字母,然后是一个数字? – SJR
是的,它总是遵循与XYZ1相同的格式(alph-alpha-alpha-numeric) – Janim