VBA数组返回数字而不是字符串

时间:2014-09-26 11:28:20

标签: arrays excel vba excel-vba

我创建了一个包含数字和文本的单元格范围的数组。一列称为PolicyNumber。有值为:

11/2007
8/2006
12/2005
etc.

如果我想将数组中的单元格复制回工作表,则不会返回值11/20078/200612/2005等,但会返回计算结果

11/2007 = 0.00548
8/2006 = 0.003988
12/2005 = 0.00598
etc.

我试过了

  1. 在创建数组之前将值PolicyNumber格式化为文本;
  2. PolicyNumber拆分为两个单元格,然后将它们放回去;
  3. 导出时,数组中的值使用函数格式cstr。
  4. 我希望能够清楚地理解这个问题。

2 个答案:

答案 0 :(得分:2)

假设policynumber列被格式化为文本,那么将输出格式化为文本对我有用:

Sub getit()
    Dim var As Variant
    var = Range("a1:A2")
    Range("c1:c2").NumberFormat = "@"
    Range("c1:c2") = var
End Sub

答案 1 :(得分:1)

Sub firstcheck()

Dim X()
dim ind as Worksheet, FC as Worksheet
dim N as Double 

Set ind = Sheets("Input Data")

Set FC - Sheets("First Check")
N = Application.CountA(Ind.Range("G:G"))

X = ind.Range("C2:T" & N).Value 'data
....
FC.Range("B2:S" & N) = X

End Sub

专栏:

Policynumber:

工作正常的数据:

99-155547/003
99-155690/003
99-155837/003
99-173341/003
99-185326/003

复制了一些不起作用的数据:

2013/00176
2012/08233
2012/08016
2012/08330
2012/08749
2012/01122