Vba 打印到单元格时,将类似日期的字符串保留为文本

Vba 打印到单元格时,将类似日期的字符串保留为文本,vba,excel,Vba,Excel,我得到的一些值如下所示: A 1 DEC 2018 2 NOV 2018 3 OCT 2018 4 SEP 2018 5 Q119 SGX 6 Q120 SGX 7 Q219 SGX A 1 Dec-18 2 Nov-18 3 Oct-18 4 Sep-18 5 Q119 SGX 6 Q120 SGX 7 Q219 SGX 前4名为字符串格式 但是,当我使用VBA将它们存储在数组中并再次输出到单元格中时,我的输出如下所示

我得到的一些值如下所示:

    A
1   DEC 2018
2   NOV 2018
3   OCT 2018
4   SEP 2018
5   Q119 SGX
6   Q120 SGX
7   Q219 SGX
    A
1   Dec-18
2   Nov-18
3   Oct-18
4   Sep-18
5   Q119 SGX
6   Q120 SGX
7   Q219 SGX
前4名为字符串格式

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

    A
1   DEC 2018
2   NOV 2018
3   OCT 2018
4   SEP 2018
5   Q119 SGX
6   Q120 SGX
7   Q219 SGX
    A
1   Dec-18
2   Nov-18
3   Oct-18
4   Sep-18
5   Q119 SGX
6   Q120 SGX
7   Q219 SGX

我尝试将Dim arrOuput()作为字符串,但Excel似乎会自动将任何看起来像日期的字符串转换为实际的日期格式。是否有办法将值保留为文本?

将目标编号格式设置为文本(例如,
“@”
,然后再将值放回工作表

    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

将目标编号格式设置为文本(例如,
“@”
,然后再将值放回工作表

    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

像在GUI中一样,尝试将它与
连接起来

Sub preserveStringFormat()

    Dim strDate As String

    strDate = "DEC 2018"

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

    MsgBox "alright!"

End Sub

希望这会有所帮助!

尝试将其与
连接起来。
就像在GUI中一样

Sub preserveStringFormat()

    Dim strDate As String

    strDate = "DEC 2018"

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

    MsgBox "alright!"

End Sub
希望有帮助