Board logo

標題: 請問開啟舊檔如何搭配迴圈使用 [打印本頁]

作者: xyzw7    時間: 2011-7-18 08:57     標題: 請問如何在開啟舊檔的路徑中加入變數以搭配迴圈使用

各位大大好:
我想請問:
                   如何在開啟舊檔的路徑中加入變數以搭配迴圈使用 ?
我的程式如下:
Sub 相互比較找平均值()
    Workbooks.Open "D:\不同材料的pattern比較 20110704\pkg_foam_pol_v01\[email protected]"
    Workbooks.Open "D:\不同材料的pattern比較 20110704\Pink_EPP_15_pol_v01\[email protected]"
    Workbooks.Open "D:\不同材料的pattern比較 20110704\OF_Form_pol_v01\[email protected]"
    Workbooks.Open "D:\不同材料的pattern比較 20110704\EPP_15_pol_02\[email protected]"
    Workbooks.Open "D:\不同材料的pattern比較 20110704\clutter\clutter [email protected]"
在上面路徑中的 「0.6」就是我想加入變數的地方?
問題 : 1.  for loop 中的 step 以 0.1 變化呢?
              2. 如何開啟  巨集? 目前是用手動方式指到 巨集 存放路徑!
謝謝 各位大大 的解惑
作者: GBKEE    時間: 2011-7-18 09:45

回復 1# xyzw7
試試看
  1. Sub Ex()
  2.     Dim MyPath As String, Fs As Object, xlFolder As Object, xlfile As Object
  3.     With Application.FileDialog(msoFileDialogFolderPicker) '檔案對話方塊-> 限定資料夾
  4.         .AllowMultiSelect = False                          '限定單一選擇
  5.         .Show                                              '顯示 檔案對話方塊
  6.         If .SelectedItems.Count = 0 Then Exit Sub          '沒選擇離開程式
  7.         MyPath = .SelectedItems(1)                         '所選擇的資料夾
  8.     End With
  9.     'FileSystemObject 物件  提供對電腦檔案系統的存取。
  10.     Set Fs = CreateObject("Scripting.FileSystemObject").GetFolder(MyPath) '取得指定路徑中文字件夾相對應到的 Folder(資料夾) 物件。
  11.     For Each xlFolder In Fs.subfolders  'Fs.subfolders  -> Fs的資料夾集合物件
  12.         'Each xlFolder   依序處裡每一子資料夾
  13.         For Each xlfile In xlFolder.Files   'xlFolder.Files 每一子資料夾的檔案集合物件
  14.             'Each xlfile  依序處裡每一子資料夾的檔案
  15.               If xlfile.Name Like "*@0.#*.csv" Then Workbooks.Open xlfile.FullName
  16.               'xlfile.Name Like "*@0.#*.csv"  檔案名稱相似的文字格式
  17.               '* 代表 零個以上的字元 ,# 任一個數字(0-9)。
  18.         Next
  19.     Next
  20. End Sub
複製代碼

作者: xyzw7    時間: 2011-7-19 22:18

感謝大大的回覆!!
1.我想請問一下如果我有7個資料夾要開啟,我想利用檔名中的數字的改變來開啟不同的檔案,不知可行嗎?
例如:
Workbooks.Open "D:\不同材料的pattern比較 20110704\OF_Form_pol_v01\[email protected]"  =>開啟第一個檔案
Workbooks.Open "D:\不同材料的pattern比較 20110704\OF_Form_pol_v01\[email protected] "  =>開啟第二個檔案
Workbooks.Open "D:\不同材料的pattern比較 20110704\OF_Form_pol_v01\[email protected]"   => 開啟第三個檔案
2. 如何在vba中以寫程式方式 開啟巨集 (目前我是用手動方式開啟巨集)?

感謝各位大大
作者: xyzw7    時間: 2011-7-19 22:22

再補充第一個問題:因為我要開啟舊檔很多,不知道用何種「迴圈」來開啟檔比較好!
作者: xyzw7    時間: 2011-7-21 18:34     標題: 請問開啟舊檔如何搭配迴圈使用

各位大大好:
我想請問:
                   1.我想請問一下如果我有7個資料夾要開啟,我想利用檔名中的數字的改變來開啟不同的檔案,不知可行嗎?
例如:
Workbooks.Open "D:\不同材料的pattern比較 20110704\OF_Form_pol_v01\[email protected]"  =>開啟第一個檔案
Workbooks.Open "D:\不同材料的pattern比較 20110704\OF_Form_pol_v01\[email protected] "  =>開啟第二個檔案
Workbooks.Open "D:\不同材料的pattern比較 20110704\OF_Form_pol_v01\[email protected]"   => 開啟第三個檔案
因為我要開啟舊檔很多,不知道用何種「迴圈」來開啟檔比較好!因為我要開啟舊檔很多,不知道用何種「迴圈」來開啟檔比較好!

2. 如何在vba中以寫程式方式 開啟巨集 (目前我是用手動方式開啟巨集)?

感謝各位大大
作者: play9091    時間: 2011-7-21 18:40

本帖最後由 play9091 於 2011-7-21 19:17 編輯

下面有一貼問題是差不多的,可以試試看……或許是你的需求。

請問開啟舊檔如何搭配迴圈使用

而我個人這幾天寫了一個超級巨大的VBA,I7+SSD跑也要一分半才跑完。裡面也要寫到用迴圈開啟舊檔這個部分把檔案丟上來大家參考一下……
我的方法比較笨!我先把路俓在工作表裡面輸入好,用迴圈去取出路俓,再開啟檔案……簡單範例如下…
  1. Sub name_test()
  2.     For I = 4 To 10
  3. '叫出KPI報告
  4.     KPI = Workbooks("路俓版").Sheets("工作表3").Range("D" & I).Value
  5.     Workbooks.Open (KPI)
  6.     Set KPI = Nothing
  7.     KPI = ActiveWorkbook.name
  8.     Workbooks(KPI).Close SaveChanges:=True
  9.     Set KPI = Nothing
複製代碼
P.S.我個人比較想知道的是如何用VBA取出檔案路俓(不開啟檔案的情況下……),多問的……

驚突然發現問的人是同一個!!!
作者: oobird    時間: 2011-7-21 19:41

for i = 0.6 to 0.9 step 0.1
Workbooks.Open "D:\不同材料的pattern比較 20110704\OF_Form_pol_v01\OF_Form_pol_v01@" & i & "GHz.csv"
作者: GBKEE    時間: 2011-7-21 19:52

本帖最後由 GBKEE 於 2011-7-22 08:09 編輯

回復 3# xyzw7
給你的回文: 你也沒說何不合用 , 你是有7個檔案 還是7個資料夾這是不一樣的
要回文 請按 [回覆] 按鈕  答覆你的人才會得到通知 ,知道你有發文
你要的是這樣嗎>
  1. Sub Ex()
  2.     Dim i As Integer
  3.     For i = 6 To 6 + 6
  4.         Workbooks.Open "D:\不同材料的pattern比較 20110704\OF_Form_pol_v01\OF_Form_pol_v01@0." & i /10 & "GHz.csv" '>= 開啟第一個檔案
  5.     Next
  6. End Sub
複製代碼

作者: xyzw7    時間: 2011-7-22 18:08

回復 8# GBKEE

謝謝大大教導!
我是有七個資料夾,每個資料夾中有一百個多個檔案要開啟!

在請問大大:
                         如何在vba中以寫程式方式 開啟巨集 (目前我是用手動方式開啟巨集)?

感謝大大的回覆
作者: xyzw7    時間: 2011-7-22 18:11

回復 7# oobird


    請問大大:

                       你這樣子變數要如何設定呢?我有試過你這樣子的方式,可是在step後面的數字會變成  ####
請問如何決解呢?
作者: xyzw7    時間: 2011-7-22 18:15

回復 6# play9091


    很感謝謝大大大回覆,目前因為我的等級不夠,不能下載您上傳的資料,可以請您把檔案寄到 [email protected] 的信箱中嗎?

    很謝謝您!
作者: GBKEE    時間: 2011-7-22 19:59

本帖最後由 GBKEE 於 2011-7-22 20:03 編輯

回復 9# xyzw7
七個資料夾是放在一個資料夾下嗎?    2樓的程式就是如此設計的你有試過嗎? 可以嗎?  有問題再說!  
1.工具->巨集
2.可在工作表插入物件(圖片 ,快取圖案..等)後, 按下右鍵  ->指定巨集




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