Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
excel vba中的应用程序定义或对象定义错误_Vba - Fatal编程技术网

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

excel vba中的应用程序定义或对象定义错误,vba,Vba,我是个新手。我需要从编写的宏创建一个新的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 wb

我是个新手。我需要从编写的宏创建一个新的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
我在星线处发现了错误需要帮助, 提前感谢,,
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)

谢谢你的建议。