如何使用VBScript保存刚刚创建的Excel工作簿?

时间:2014-03-05 08:29:43

标签: excel vbscript

我是VBScript的新手,必须将固定宽度的文件导入Excel并保存 一切都有效,直到保存它 我正在努力

Set objExcel = CreateObject("Excel.Application")
Set objWB = objExcel.ActiveWorkbooks
objWB.SaveAs("path\to\folder\outputTest1")

每次我尝试启动它时,都会出现以下错误:

Object doesn't support this property or method: 'objExcel.ActiveWorkbooks'

我做错了什么?

编辑: 感谢Simoco我解决了这个问题,但现在我收到了这个错误:

Object Required: 'objWB'

尽管我已经设定了它...... 这是我的完整代码:

Const xlFixedWidth = 2

Set objExcel = CreateObject("Excel.Application")
Set objWB = objExcel.ActiveWorkbook
objWB.SaveAs("I:\Zd\Zdik\SwitchMacAdd_Scripts\excel_output\outputTest1")
objExcel.DisplayAlerts = false
objExcel.Visible = True

objExcel.Workbooks.OpenText _
"I:\Zd\Zdik\SwitchMacAdd_Scripts\output_raw\output.txt",,,xlFixedWidth,,,,,,,,,Array(Array(0,1),Array(4,1),Array(22,1), Array(34,1))

2 个答案:

答案 0 :(得分:1)

假设你有这个固定宽度的文件:

20140623112524TXT [其余部分]

第一个字段是格式为YYYYmmdd的日期,从第0列开始,长度为8

第二个字段是一个数字,从第8列开始,长度为6

第3个字段是一个文本,从第14列开始,长度为3

要将此转换为excel并使用vbscript保存excel,您可以:

Const xlGeneralFormat = 1
Const xlTextFormat = 2
Const xlYMDFormat  = 5
Const xlYDMFormat=8
Const xlSkipColumn = 9

Const xlFixedWidth = 2

Set oExcel = CreateObject("Excel.Application")

oExcel.Workbooks.OpenText [infilename],,[fstline],xlFixedWidth,,,,,,,,, _
    Array(  Array(0, xlYMDFormat),Array(8, xlGeneralFormat),Array(14, xlTextFormat))


oExcel.Visible = True
oExcel.ActiveWorkbook.SaveAs [outfilename]

[infilename] 是要处理的文件

[fstline] 是要处理的第一行

[outfilename] 是excel文件的名称。

阅读本文以了解有关数据类型的更多信息:http://msdn.microsoft.com/en-us/library/aa221100(office.11).aspx

答案 1 :(得分:0)

如果以上是您的完整代码,那么您需要Dim objWBDim objExcel因为这些应该在您向其分配内容之前声明,同时也将Option Explicit添加到顶部代码可能有助于提供更好的错误消息,即“未定义变量”