从Access导出到Excel时单元格中的新行

时间:2015-08-08 13:59:48

标签: excel vba excel-vba ms-access access-vba

从Access导出到Excel时,有没有办法在单元格中正确导出“新行”。

数据在Access中输入,Access中的新行显示OK。

但是,当我将它导出到Excel时,它看起来不太好。

尝试通过删除所有可能的新行字符来清理文本,然后将值插入Excel,如下所示(请注意,在“逗号”符号后需要换行):

    FText = Replace(rs_Quotation!Text, vbCrLf, "")
    FText = Replace(rs_Quotation!Text, vbLf, "")
    FText = Replace(rs_Quotation!Text, vbNewLine, "")
    FText = Replace(rs_Quotation!Text, vbCr, "")
    FText = Replace(rs_Quotation!Text, ", ", "," & vbCr)

看起来很不错但是在Excel中打开它会在文本上方添加一些额外的空间,并在行之间添加一些空格:

Example of blank text above cell contents

但是,双击并退出单元格后,它会恢复正常。

更新:EntireRow的“AutoFit”方法也没有产生任何效果。

1 个答案:

答案 0 :(得分:1)

看起来你要回到每个替换的源代码,所以只有最后一个对你的输出做任何事情。试试这个:

FText = Replace(rs_Quotation!Text, vbCrLf, "")
FText = Replace(FText, vbLf, "")
FText = Replace(FText, vbNewLine, "")
FText = Replace(FText, vbCr, "")
FText = Replace(FText, ", ", "," & vbCr)

将以下功能添加到您的代码中。

Public Function String2ASCIIString(ByVal strText As String) As String
    Dim i as integer
    Dim s as string

    For i = 1 To Len(strText)
        s = s & asc(Mid(strText, i, 1)) & ","
    Next
    String2ASCIIString = Left(s, Len(s) - 1)
End Function

在上面第一段代码之后添加下一行。

Debug.Print String2ASCIIString(FText)

运行代码,按Ctrl + G,复制并粘贴数字字符串作为注释。