2013-02-15 56 views
3

我試過這段代碼來創建一個excel工作表。生成多個excel

Set ExcelObject = CreateObject("Excel.Application") 

ExcelObject.visible = True 
ExcelObject.WorkBooks.Add  
ExcelObject.Sheets(1).Cells(1,1).value = "My first excel" 

但我想會產生一個以上的Excel所以我想這個代碼 -

Set ExcelObject = CreateObject("Excel.Application") 

For x= 1 to 5 
ExcelObject(x).visible = True 
ExcelObject(x).WorkBooks.Add 'Adds a workbook to an excel object 
x=x+1 
ExcelObject.Sheets(1).Cells(1,1).value = "My first excel" 

但它不是working.Please幫助!

回答

2

你的代碼中有一些錯誤:

  1. 你錯過了Next x

  2. 你不必因爲你使用For..Next聲明遞增xNext x將爲您做到這一點。

工作代碼:

VB.NET

Dim ExcelObject() As Object 
ExcelObject = New Object(5) {} 
For x = 1 To 5 
    ExcelObject(x) = CreateObject("Excel.Application") 
    ExcelObject(x).visible = True 
    ExcelObject(x).WorkBooks.Add() 'Adds a workbook to an excel object 
    ExcelObject(x).Sheets(1).Cells(1, 1).value = "My first excel" 
Next x 

對於VBScript

Dim ExcelObject(5) 
For x = 1 To 5 
    Set ExcelObject(x) = CreateObject("Excel.Application") 
    ExcelObject(x).visible = True 
    ExcelObject(x).WorkBooks.Add() 'Adds a workbook to an excel object 
    ExcelObject(x).Sheets(1).Cells(1, 1).value = "My first excel" 
Next 
+0

我被保存成一個擴展名爲.vbs,並雙擊它。當記事本exeuting這些代碼引用工作簿我用你的代碼執行vbs文件,commmand提示符打開一秒鐘,然後自行關閉,沒有輸出,也沒有生成excels。當我試圖執行我的代碼時,發生了什麼事情。我錯過了什麼? – Praveenks 2013-02-15 09:04:17

+0

@Praveenks我以爲你使用VB.NET。查看更新回答 – 2013-02-15 11:01:19

+0

@Praveenks很高興幫助 – 2013-02-15 12:45:32

0

可能要考慮使用集合。在上面的示例中,您正在使用ExcelObject(x).visible = True ---當您創建它時,您還沒有創建5 ExcelObjects

有幾種方法可以做到這一點。但是當你添加一個工作簿時,玩弄你的東西。您正在將工作簿實例創建到工作簿集合中。因此,而不是引用它作爲ExcelObject(x) =>你需要從項目

ExcelObject.WorkBooks.item(x)

+0

只是爲了清楚一點,你能修改我的代碼嗎?因爲我嘗試了你所建議的我,但我認爲我錯過了一些東西。 – Praveenks 2013-02-15 10:08:29