VBA在插入时更改单元格值

时间:2014-10-07 13:55:55

标签: excel vba excel-vba

我为这个令人困惑的头衔道歉。我碰到了一个我不知道如何描述,解决或修复问题的怪癖。我有一个项目,我从另一个工作簿中的值拉,并希望从我传回原始函数的集合中插入它。我在调试屏幕中打印出来,它是正确的值,如下所示:

9-06-01

下一行我将它插入适当的单元格中:

Dim item As Variant

For Each item In someCollection
    Debug.Print item
    thisSht.cells(y, x).Value = item
Next item

当我将其插入单元格时,值变为

37140

该值不打算被视为日期,我认为尝试自动格式是优秀的,但事实并非如此,因为一旦我设置了正确的单元格格式,问题仍然存在。它适用于其他一些值,例如807-01-01。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

它被视为日期(2001年9月6日)。要解决这个问题,你可以在前面加上'或将单元格格式化为文本:

thisSht.cells(y, x).Value = "'" & item

With thisSht.cells(y, x)
.Numberformat = "@"
.Value = item
End With