我試圖創建公式或宏來基於前面的非數字字符(使用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