【问题标题】:Unable to transfer large .csv row count to Excel 2007无法将大型 .csv 行数传输到 Excel 2007
【发布时间】:2012-09-20 13:38:23
【问题描述】:

我一直在使用下面的 VBScript 代码 sn-p 将每小时的 .csv 文件拖放到 Excel 文件中。除了最近 .csv 超过了 65536 行限制之外,它的工作原理就像发条一样。该机器充斥着来自兼容性检查器的弹出窗口,然后我意识到它正在使用 Excel 2003,即使安装了 Excel 2007。即使显式调用 Excel.Application.12 对象,也不知道为什么会发生这种情况:

Dim oExcel
Set oExcel = CreateObject("Excel.Application.12")
With oExcel
    .DefaultSaveFormat=51
    .Workbooks.Open sourceFile
    .Sheets(1).Columns("A").TextToColumns .Range("A1"), xlDelimited, , , , True
    .ActiveWorkbook.SaveAs outputFile, xlNormal
    .Quit
End With

如何在没有兼容性检查器提示的情况下使该脚本提取大于 65536 的行数以导入 Excel 2007,同时保留所有源行?

一些附加信息:

  1. 全新机
  2. 运行 Windows 7 x64 位操作系统
  3. 只安装了一个版本的 Office:Office 2007

【问题讨论】:

  • 刚刚添加了附加信息。不,它不是多版本,只安装了 Office 2007
  • 没问题。好吧,我尝试了使用和不使用默认格式并使用 .xlsx 扩展名。都没有帮助
  • 在 Excel 下添加了键而不是 Word,没有骰子。这是疯了! :)

标签: csv vbscript excel-2007 export-to-excel file-format


【解决方案1】:

尝试按照Ron de Bruin 的建议添加fileformat:=51

以下摘自 OP 对问题的编辑:

以下更改有效!:

 Dim oExcel  
 Set oExcel = CreateObject("Excel.Application.12")  
 With oExcel  
    .DefaultSaveFormat=51  
    .Workbooks.Open sourceFile  
    .Sheets(1).Columns("A").TextToColumns .Range("A1"), xlDelimited, , , , True  
    .ActiveWorkbook.SaveAs outputFile, 51  
    .Quit  
 End With    

另外,请确保文件扩展名为 .xlsx。

【讨论】:

  • 感谢您的坚持。我将 SaveAs 更改为 outputFile, 51,它起作用了!
猜你喜欢
  • 1970-01-01
  • 2021-05-13
  • 1970-01-01
  • 2021-11-08
  • 1970-01-01
  • 2015-01-07
  • 2016-01-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多