我從幾列填充數組。在一列中有時會有數字,字母或它們的組合。 源中的數字被格式化爲文本。意思是我領先零。 當數組填充後,它將文本轉換爲數字。這意味着如果適用,我會丟失我的前導零。但我需要這個。分配給數組的值被存儲爲數字,而不是文本
我是怎麼想那麼遠:
- 格式化片,其中陣列將其張貼到(不會因爲數組中的值的工作已經爲數字,失去了前導零的);
- 將
Dim myArray() as Variant
更改爲Dim myArray() as String
; - 更改
Dim i, j, k as Long
至Dim i, j, k as String
; - 使用
Cstr
將數據中的數據存儲爲字符串;
這是我的代碼我現在有:
numberOfRecords = Range(Selection, Selection.End(xlDown)).Rows.Count + 1
Dim myArray() As String
Dim i, j, k As Long
k = 0
ReDim myArray(numberOfRecords, 2 To 6) As String
For i = 2 To numberOfRecords
If IsError(Application.Match(Cells(i, "A").Value,
Sheets("SE16N").Range("A:A"), 0)) Then
For j = 2 To 6
myArray(k, j) = CStr(Cells(i, j).Text)
Debug.Print myArray(k, j) 'Just to check how the array is storing data
Next j
k = k + 1
End If
Next i
我希望有人能幫助我。
我只能發佈2個鏈接,因爲我在Stack Overflow中沒有10的聲望。因此只能肯定我有零和本地窗口視圖。
With leading zero's Local Windows view
您是否知道'朦朧I,J,K爲String'意味着i和j是變種k是字符串?此外,爲了保留前導零,請使用'.Text'屬性而不是'.Value'屬性。 – braX
使用'細胞(I,J).Text'將返回什麼是真正顯示,而不是將忽略格式化值。 – SJR
當你使用'i,j,k'作爲數值指標時,'Dim i,j,k As String'也顯得有點奇怪。你可能想'昏暗我只要,J長,K作爲Long' –