对于值:
1, 1, A, B, 2, 1, C, C, 3, D, 1, 1, 1
如何创建单个字符串:
2AB3CC3D3 (not 11AB21CC3D111)
答案 0 :(得分:2)
尝试一下...
Public Function SummateAllNumbers(ByVal rngCells As Range, Optional ByVal bSplitCellContents As Boolean = False, Optional ByVal strDelimiter As String = ",") As String
Dim rngCell As Range, arrValues() As String, lngIndex As Long, arrSplitValues() As String
Dim i As Long, lngSummation As Long, strValue As String
lngIndex = -1
For Each rngCell In rngCells
If bSplitCellContents Then
arrSplitValues = Split(rngCell.Value, strDelimiter)
Else
arrSplitValues = Split(rngCell.Value)
End If
For i = 0 To UBound(arrSplitValues)
lngIndex = lngIndex + 1
ReDim Preserve arrValues(lngIndex)
arrValues(lngIndex) = arrSplitValues(i)
Next
Next
For i = 0 To UBound(arrValues)
strValue = Trim(arrValues(i))
If IsNumeric(arrValues(i)) Then
lngSummation = lngSummation + strValue
Else
If lngSummation > 0 Then
SummateAllNumbers = SummateAllNumbers & lngSummation
End If
SummateAllNumbers = SummateAllNumbers & strValue
lngSummation = 0
End If
If i = UBound(arrValues) And lngSummation > 0 Then
SummateAllNumbers = SummateAllNumbers & lngSummation
End If
Next
End Function
...您需要使用VBA编辑器将以上内容添加到新模块中。
您可以使用3种方式。
单个单元格分隔
您可以针对单个单元格对其进行指定,并使该函数将单元格的内容拆分为一个数组,以便识别各个元素。
范围选择
省略公式的一部分,该部分指定您要通过特定的定界符分割单元格的内容并选择单元格范围。
两者的组合
两者都可以。
如果看不到它,还有一个第3个参数可以在需要时更改定界符。
我没有得到关于值是否在不同单元格中的答案,所以我兼顾了这两个问题。
我希望它对您有用。