[英]Split cell value into numeric array
我的單元格包含類似“ 12_34_56”的內容
我用了:
MyNumbers = Split(Cells(1, 1).Value, "_")
將數值拆分為一個數組,但結果是一個字符串數組!
我知道我可以在數組的每個值上使用CInt,但是沒有任何辦法直接獲取數字數組嗎?
提前致謝
據我所知,不可能通過一次調用將一種類型的數組轉換為另一種類型,但是如果要在多個位置進行此轉換,顯而易見的選擇是編寫一個返回所需結果的函數結果如下:
Public Function SplitIntegers(StringToSplit As String, Sep As String) As Variant
Dim arrStrings() As String
Dim arrIntegers() As Integer
Dim i As Long
On Error GoTo Err_SplitIntegers
arrStrings = Split(StringToSplit, Sep)
ReDim arrIntegers(LBound(arrStrings) To UBound(arrStrings))
For i = LBound(arrStrings) To UBound(arrStrings)
arrIntegers(i) = CInt(arrStrings(i))
Next i
SplitIntegers = arrIntegers
Exit Function
Err_SplitIntegers:
Select Case Err.Number
Case 13 'Type Mismatch Error: StringToSplit contains non-numeric substrings
On Error GoTo 0
Err.Raise 9114, "SplitIntegers", _
"SplitIntegers failed: substring '" & arrStrings(i) & "' of string '" & StringToSplit & "' is not numeric"
Case Else 'Unhandled error, return to calling code
Dim iErrNum As Integer, strErrDesc As String
iErrNum = Err.Number
strErrDesc = Err.Description
On Error GoTo 0
Err.Raise iErrNum, "SplitIntegers", strErrDesc
End Select
End Function
當您需要此功能時,您可以像拆分功能一樣單線調用此功能。
Dim arrMyInts() As Integer
arrMyInts = SplitIntegers(Cells(1,1).Value, "_")
這對我來說非常有效,並且設置起來非常簡單! 我將使用單元格A1作為帶有數字字符串的示例。
Dim strarray as Variant
Dim intarray as Variant
Dim x as Long
strarray = Split(Range("A1").Value, "_")
ReDim intarray(LBound(strarray) to UBound(strarray))
For x = LBound(strarray) To UBound(strarray)
intarray(x) = CInt(strarray(x))
Next x
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.