Excel 为什么我不能正确格式化CSV文件?

Excel 为什么我不能正确格式化CSV文件?,excel,csv,export-to-csv,Excel,Csv,Export To Csv,因此,我有一个小型VBA应用程序,它通过用户表单获取输入,然后将数据发送到CSV文件。当我从split userform文本框中读取数据时,数据的格式将与生成的excel文件中显示的格式不同。我对此做了一些研究,发现保存为CSV有时会导致这种情况发生,所以我设置了一个脚本来显示文本框中每行的值,即使我没有保存为CSV,额外的字符仍然存在。我希望这里有人能告诉我为什么会这样 我尝试创建一个空白的CSV文件,然后将数据写入其中 我曾尝试使用for next循环从userform中获取所有数据,但没有

因此,我有一个小型VBA应用程序,它通过用户表单获取输入,然后将数据发送到CSV文件。当我从split userform文本框中读取数据时,数据的格式将与生成的excel文件中显示的格式不同。我对此做了一些研究,发现保存为CSV有时会导致这种情况发生,所以我设置了一个脚本来显示文本框中每行的值,即使我没有保存为CSV,额外的字符仍然存在。我希望这里有人能告诉我为什么会这样

我尝试创建一个空白的CSV文件,然后将数据写入其中

我曾尝试使用for next循环从userform中获取所有数据,但没有保存,但字符仍然存在

我尝试打印到文本文件,然后重命名为CSV

代码生成的csv文件看起来很棒,很完美,但是当我将单元格复制到文本文件时,我得到了不应该存在的额外字符。这是将单元格复制到文本文件时得到的输出

Operation Type  Full Name   S ID    Group ID    Email Address   Phone Number    Extension   BO Flag CFlag   FFlag   MD List Locale
N   "Test 1
"   "Test.1
"   GroupTest   "Test1@test.com
"   "0000000000
"       Yes No  No      en_US
N   "Test 2
"   "Test.2
"   GroupTest   "Test2@test.com
"   "0000000000
"       Yes No  No      en_US
N   Test 3  Test.3  GroupTest   Test3@test.com  "0000000000
"       Yes No  No      en_US
出于某种原因,最后一行的格式是正确的,但我不明白为什么其余的行格式不正确

它应该为每个用户包含一行,如下所示

Operation Type  Full Name   S ID    Group ID    Email Address   Phone Number    Extension   BO Flag CFlag   FFlag   MD List Locale
N   Test 1  Test.1  GroupTest   Test1@test.com  0000000000      Yes No  No      en_US
N   Test 2  Test.2  GroupTest   Test2@test.com  0000000000      Yes No  No      en_US
这就是我从文本框中提取数据的方式

For Each ctrl In Me.Controls

    If TypeName(ctrl) = "TextBox" Then

        If ctrl.Name = "TextBox1" Then 'Full Name

                UserForm1.TextBox1.SetFocus

                LCount = UserForm1.TextBox1.LineCount

                BoxValue = UserForm1.TextBox1.Text

                For i = 0 To LCount - 1

                    BoxValue = Split(UserForm1.TextBox1, Chr(10))(i)

                    ActiveWorkbook.Sheets("Sheet1").Range("B" & i + 2).value = BoxValue

                Next i

        End If

   End If

Next ctrl

这一定与我如何从文本框中提取数据有关,但我找不到问题所在。

因此,我所需要做的就是使用不同的分割分隔符

我从: BoxValue=Split(UserForm1.TextBox1,Chr(10))(i)

致: BoxValue=Split(UserForm1.TextBox4,vbCrLf)(i)

这会导致split函数在每次返回时都进行分割,现在我的数据已完全格式化

希望这有助于其他人