vba转换msexcel表格到json。 结束行不一致

下面的子从一个Excel表格创build一个JSON文件,以单元格(1,1)开始。 问题是当我拖放生成的文件在Visual Studio中时,我得到以下消息:

以下文件中的行结尾不一致。 你想要正常化行结束?

我怎样才能使这个子产生一致的行结束?

Sub CreateWksJON(mywksht As Worksheet, NbofFields As Integer, NbofElements As Integer) Dim FilePath As String Dim fieldData As String Dim i As Integer Dim j As Integer Dim objStream Set objStream = CreateObject("ADODB.Stream") objStream.Charset = "utf-8" objStream.Open FilePath = "E:\Git\ACWB-MSEcelWorksheetTOJson\" & mywksht.Name & ".json" 'Open FilePath For Output As #1 fieldData = "{" & Chr(10) & Chr(13) & """" & mywksht.Name & """" & ": {" & Chr(10) & Chr(13) objStream.writetext fieldData fieldData = "" For j = 1 To NbofFields i = 1 fieldData = """" & mywksht.Cells(i, j).Value & """" & ": [" For i = 2 To NbofElements - 2 If IsNumeric(mywksht.Cells(i, j).Value) Then fieldData = fieldData & mywksht.Cells(i, j).Value & "," Else fieldData = fieldData & """" & mywksht.Cells(i, j).Value & """" & "," End If Next i 'add the last element of the field If IsNumeric(mywksht.Cells(i + 1, j).Value) Then fieldData = fieldData & mywksht.Cells(i + 1, j).Value Else fieldData = fieldData & """" & mywksht.Cells(i + 1, j).Value & """" End If If j = NbofFields Then fieldData = fieldData & "]" & Chr(10) & Chr(13) Else fieldData = fieldData & "]," & Chr(10) & Chr(13) End If objStream.writetext fieldData Next j objStream.writetext "}" & Chr(10) & Chr(13) & "}" & Chr(10) & Chr(13) objStream.SaveToFile FilePath, 2 End Sub 

这是桌子

 Envelpope_ID CG_MAC CG_Imp CG_SI Weight_Imp Weight_SI 1 20 875 22.225 71700 32522.58942 1 20 875 22.225 98000 44452.0748 1 28 900 22.86 129720 58840.03207 1 38 1000 25.4 129720 58840.03207 1 38 1000 25.4 119840 54358.53718 1 43 1200 30.48 102200 46357.16372 1 43 1200 30.48 94000 42637.7044 1 34 950 24.13 71700 32522.58942 1 20 875 22.225 71700 32522.58942 2 20 875 22.225 71700 32522.58942 2 20 875 22.225 98000 44452.0748 2 28 900 22.86 125000 56699.075 2 38 1000 25.4 125000 56699.075 2 38 1200 30.48 102200 46357.16372 2 43 1200 30.48 94000 42637.7044 2 43 950 24.13 71700 32522.58942 2 34 875 22.225 71700 32522.58942 

您可以更改为VbCrLf,但是如果按照正确的顺序执行,则字符命名应该可以工作。

Cr是ASCII(13),Lf是ASCII(10),所以你的行结束应该是

 chr(13)&chr(10)