excel - VBA Excel 将文件导出为 .csv,并将数据保留在正确的列中

标签 excel vba csv

我希望将 .csv 文件与列一起保存,就像它们在我母亲的工作簿中一样。

我使用了以下代码:

Application.DisplayAlerts = False

     For Each Wksht In ActiveWorkbook.Worksheets


      myPath = ThisWorkbook.Path & "\"

       ActiveWorkbook.Sheets(Wksht.Index).Copy
       ActiveWorkbook.SaveAs Filename:=myPath & "Address list - NEW", FileFormat:=xlCSV, 
       CreateBackup:=False
       ActiveWorkbook.Close

       Next Wksht

       Application.DisplayAlerts = True

但是,我并没有将清晰的数据按列及其标题标题分隔开,而是将所有内容都放在一列中。

enter image description here

我在这里缺少什么?

最佳答案

请尝试下一种打开方式(也@VBasic2008):

Workbooks.OpenText Filename:=myPath & "Address list - NEW", Origin _
        :=437, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote _
        , Tab:=False, Comma:=True

如果不行,请测试VBasic2008推荐的解决方案:

Workbooks.Open Filename:=myPath & "Address list - NEW", Format:=2

如果上述解决方案不起作用(未经测试),或者即使它们有效但需要替代方案,请尝试下一种方法来拆分结果(一列)开口:

Private Sub testTestTextToColumns()
  Dim i As Long, sh As Worksheet, rng As Range
  Set sh = ActiveSheet
  
    Set rng = sh.Range("A:A")
    rng.TextToColumns Destination:=sh.Range("A:C"), Comma:=True, FieldInfo:=Array(Array(1, 2), Array(1, 2), Array(1, 2))
End Sub

注意:第二个代码应该处理默认的打开结果。尝试打开 csv 时您现在会得到什么...

关于excel - VBA Excel 将文件导出为 .csv,并将数据保留在正确的列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65978311/

相关文章:

java - 使用 Apache POI 在 Microsoft Excel XSSF 中存储电话号码

Excel - 定义图表源数据时以前的工作表名称

excel - 将美元转换为英镑

vba - For循环中的设置范围

vba - 如果正文包含字符串,则删除签名

python - 如何使用 sorted() 同时对两列进行排序

r - 如何在 R Shiny 应用程序中嵌入清洁代码?

r - 将所有列从逻辑转换为csv中的字符

vba - 带有输入框的变量与模块中的多个子变量

vba - 如何按类别对行值求和