首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分配给Array的值存储为数字,而不是文本

分配给Array的值存储为数字,而不是文本
EN

Stack Overflow用户
提问于 2017-10-19 11:56:12
回答 2查看 130关注 0票数 0

我正在从几个列填充一个数组。在一列中,有时有数字、字母或它的组合。源中的数字被格式化为文本。当数组被填充时,它将文本转换为数字。这意味着,如果适用的话,我就失去了领先的零值。但我需要这个。

到目前为止,我尝试了什么:

  1. 格式化该数组将其发送到的工作表(不会工作,因为数组中的值已经是数字,并且丢失了前导零);
  2. Dim myArray() as Variant改为Dim myArray() as String
  3. Dim i, j, k as Long改为Dim i, j, k as String
  4. 使用Cstr将数据作为字符串存储在数组中;

这是我现在的代码:

代码语言:javascript
复制
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,但在堆栈溢出。因此,只有确定我有领先的零和本地窗口视图。

带前导零的 本地Windows视图

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-23 16:37:14

我找到了解决这个问题的方法:我将相应列的格式手动更改为文本,这是一次的努力。最初在我的代码中我使用了range.clear,但现在我使用了range.clearcontent。Clearcontent不移除列的格式。现在它就像一种魅力。:)

票数 0
EN

Stack Overflow用户

发布于 2017-10-19 13:53:11

从单元格中获取值的最简单方法是:

代码语言:javascript
复制
Dim vData As Variant
vData = Range("A2:A10").Value

您应该得到字符串作为字符串,数字作为数字。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46829306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档