我正在从几个列填充一个数组。在一列中,有时有数字、字母或它的组合。源中的数字被格式化为文本。当数组被填充时,它将文本转换为数字。这意味着,如果适用的话,我就失去了领先的零值。但我需要这个。
到目前为止,我尝试了什么:
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个链接,因为我没有声誉的10,但在堆栈溢出。因此,只有确定我有领先的零和本地窗口视图。
发布于 2017-11-23 16:37:14
我找到了解决这个问题的方法:我将相应列的格式手动更改为文本,这是一次的努力。最初在我的代码中我使用了range.clear,但现在我使用了range.clearcontent。Clearcontent不移除列的格式。现在它就像一种魅力。:)
发布于 2017-10-19 13:53:11
从单元格中获取值的最简单方法是:
Dim vData As Variant
vData = Range("A2:A10").Value您应该得到字符串作为字符串,数字作为数字。
https://stackoverflow.com/questions/46829306
复制相似问题