繁体   English   中英

excel vba中的应用程序定义或对象定义错误

[英]Application defined or Object defined error in excel vba

我是excel的新手。 我需要从编写的宏创建一个新的Excel,需要添加一些数据并将其保存为csv文件。 我正在获取应用程序定义或对象定义错误。 她是代码

Sub splitIntoCsv()
Dim wbIn
Dim wbIn1 As Workbook
Dim header As Variant
Set wbIn = CreateObject("Excel.Application")
wbIn.Workbooks.Add
'wbIn.Worksheets(1).Name = "TestData"
'Set wbIn1 = Workbooks.Open(Sheet1.Range("b25").Value, True, False)
header = Split(ThisWorkbook.Sheets(1).Range("B2").Value, ",")
For k = 1 To 10
DoEvents
Next k
For i = LBound(header) To UBound(header)
'MsgBox header(i)
**wbIn.Worksheets(1).Range("a" & i).Value = header(i)**
Next i
wbIn.Worksheets(1).SaveAs Filename:="D:\file.csv" & Filename, FileFormat:=xlCSV, CreateBackup:=False
End Sub

我在Starred线上得到了错误。需要帮助,提前谢谢,Raghu。

以下代码现在可以使用,请看一下

Sub splitIntoCsv()
Dim wbIn As Excel.Application
Dim wbIn1 As Workbook
Dim header As Variant

Set wbIn = CreateObject("Excel.Application")
Set wbIn1 = wbIn.Workbooks.Add

header = Split(ThisWorkbook.Sheets(1).Range("B2").Value, ",")
For k = 1 To 10
DoEvents
Next k
For i = LBound(header) To UBound(header)
'**wbIn1.Worksheets(1).Range("a" & i).Value = header(i)**
Next i

wbIn1.SaveAs Filename:="D:\file.csv" & Filename, FileFormat:=xlCSV, CreateBackup:=False
wbIn1.Close
Set wbIn1 = Nothing
wbIn.Application.Quit
Set wbIn = Nothing
End Sub

代码中的第一个问题是您尝试使用工作表进行保存。 工作表没有保存方法,工作簿可以。

在修复代码时,我在内存中有大量的excel对象。 请查看如何关闭和退出Excel应用程序。

对于您询问的星号行,请注意Split函数返回一个从零开始的数组,因此在您第一次通过循环时,您尝试引用单元格A0 因此,将行更改为:

wbIn.Worksheets(1).Range("a" & i+1).Value = header(i)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM