2013-04-17 69 views
3

我是新來的excel。我需要從編寫的宏中創建一個新的Excel,並且需要添加一些數據並將其保存爲一個csv文件。我得到應用程序定義或對象定義的錯誤。她是代碼在Excel中應用程序定義或對象定義錯誤vba

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 

我得到了錯誤,在需要的星號標記lines.Help, 在此先感謝, Raghu。

回答

1

下面的代碼現在的工作,請看看

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應用程序。

+0

感謝您的建議。 –

1

對於您詢問的加星線,請注意Split函數會返回一個從零開始的數組,因此您在第一次通過循環時嘗試引用單元格A0。因此,將該行更改爲:

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

感謝您的回答。 –

相關問題