Board logo

標題: [發問] 撈檔案~爬文後還是寫不出來(已解決) [打印本頁]

作者: iceandy6150    時間: 2012-2-22 17:51     標題: 撈檔案~爬文後還是寫不出來(已解決)

本帖最後由 iceandy6150 於 2012-3-1 17:10 編輯

我有4個xls檔,分別是    麻辣1日.xls,麻辣2日.xls,麻辣3日.xls,結算.xls
前三個檔案中各有個sheet叫"小計",欄位(1,1)有個值

我在   結算.xls   中寫了一個按鈕,可以把
麻辣1日.xls,麻辣2日.xls,麻辣3日.xls中的小計中的(1,1)的值給加起來
放到結算.xls中的(1,1)

這幾個檔案都放在c:/我的資料夾/

Private Sub CommandButton1_Click()
Dim t, i As Integer
Dim fd, fs As String

fd = "C:\我的資料夾\"
t = 0
For i = 1 To 3
       fs = fd & "麻辣" & CStr(i) & "日.xls"                '把路徑弄出來加上檔名
       Workbooks(fs).Open                                          '開啟該檔
      .Sheets("小計").Select                                           '選該檔的小計sheet
      t = t + Workbooks(fs).Sheets("日報").Cells(1, 1).Value       '累加該欄位的值
      Workbooks(fs).Close SaveChanges:=False      '關檔
Next
Workbooks("結算").sheets("1").cells(1,1)=t            '把累加結果放到結算.xls去
End Sub

可是都會出錯,教教我吧,謝謝
作者: GBKEE    時間: 2012-2-22 17:56

本帖最後由 GBKEE 於 2012-2-23 08:45 編輯

回復 1# iceandy6150
  1. With Workbooks.Open(fs)                           '開啟該檔
  2.       .Sheets("小計").Select                          '選該檔的小計sheet
  3.       t = t + .Sheets("日報").Cells(1, 1).Value       '累加該欄位的值
  4.       .Close SaveChanges:=False                       '關檔
  5.     End With
複製代碼

作者: iceandy6150    時間: 2012-2-22 21:08

回復 2# GBKEE


    .Sheets("小計").Select
大大~到這一行都會顯示 錯誤9 陣列索引超出範圍
為什麼會這樣?
作者: dino1978    時間: 2012-2-22 21:21

回復 3# iceandy6150


    確定一下你的資料路徑有沒有錯誤~
作者: iceandy6150    時間: 2012-2-22 21:22

回復 2# GBKEE

在家測試~~改成桌面上的TEST資料夾裡面~放工作表1日.xls~工作表2日.xls~工作表3日.xls~
工作表的sheet1改名為 "小計"  
路徑是C:\Users\ice\Desktop\TEST

Private Sub CommandButton1_Click()
Dim t, i As Integer
Dim fd, fs As String

fd = "C:\Users\ice\Desktop\TEST\"
t = 0
For i = 1 To 3
       fs = fd & "工作表" & CStr(i) & "日.xls"                '把路徑弄出來加上檔名
      
With Workbooks(fs).Open                             '開啟該檔-----目前錯誤出在這一步,陣列索引超出範圍
       .Sheets("小計").Select                          '選該檔的小計sheet
       t = t + .Sheets("小計").Cells(1, 1).Value       '累加該欄位的值
      .Close SaveChanges:=False                       '關檔
    End With

Next
Workbooks("工作表結算").Sheets("1").Cells(1, 1) = t         '把累加結果放到結算.xls去
End Sub
作者: iceandy6150    時間: 2012-2-22 23:52

回復 4# dino1978


    你好~檢查過了都沒錯
目前就如前一篇文章內容
都卡在開檔案那邊
With Workbooks(fs).Open
或是選擇所開的檔案的SHEET就會出錯
.Sheets("小計").Select
不知為何
作者: GBKEE    時間: 2012-2-23 08:48

回復 6# iceandy6150
對不起 給你的程式中  With Workbooks(fs).Open 語法是錯誤的 已更正了
作者: iceandy6150    時間: 2012-2-23 12:48

回復 7# GBKEE


    okok了~~

原來.open放前面跟放後面差這麼多呀

感謝大大熱心解答




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)