在打印到单元格时保留一个看起来像日期的文本字符串

时间:2018-09-07 04:31:59

标签: excel vba excel-vba

我有一些看起来像这样的值:

    A
1   DEC 2018
2   NOV 2018
3   OCT 2018
4   SEP 2018
5   Q119 SGX
6   Q120 SGX
7   Q219 SGX

前4位是字符串格式。

但是,当我使用VBA将它们存储在数组中并再次将它们输出到单元格中时,我的输出如下所示:

    A
1   Dec-18
2   Nov-18
3   Oct-18
4   Sep-18
5   Q119 SGX
6   Q120 SGX
7   Q219 SGX

我已经尝试过Dim arrOuput() as String,但是Excel似乎总是自动将任何看起来像日期的字符串转换为实际的日期格式。我可以通过某种方式将值保留为文本吗?

2 个答案:

答案 0 :(得分:2)

尝试像在GUI中那样,将其与'串联。

Sub preserveStringFormat()

    Dim strDate As String

    strDate = "DEC 2018"

    range("A1").Value = "'" & strDate

    MsgBox "alright!"

End Sub

希望有帮助!

答案 1 :(得分:1)

在将值放回工作表之前,将目标号码格式设置为“文本”(例如"@"

    With Worksheets("sheet7")
        With .Range(.Cells(2, "A"), .Cells(.Rows.Count, "A").End(xlUp))
            Debug.Print .Address(0, 0)
            .Offset(0, 1).NumberFormat = "@"
            .Offset(0, 1) = .Value2
        End With
    End With