返回列表 上一主題 發帖

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

請問如何在開啟舊檔的路徑中加入變數以搭配迴圈使用

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

TOP

回復 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
複製代碼

TOP

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

感謝各位大大

TOP

再補充第一個問題:因為我要開啟舊檔很多,不知道用何種「迴圈」來開啟檔比較好!

TOP

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

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

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

感謝各位大大

本帖最後由 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取出檔案路俓(不開啟檔案的情況下……),多問的……

驚突然發現問的人是同一個!!!

路俓版.rar (18.48 KB)

初學VBA乍到twbts

TOP

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"

TOP

本帖最後由 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
複製代碼

TOP

回復 8# GBKEE

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

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

感謝大大的回覆

TOP

回復 7# oobird


    請問大大:

                       你這樣子變數要如何設定呢?我有試過你這樣子的方式,可是在step後面的數字會變成  ####
請問如何決解呢?

TOP

        靜思自在 : 一個人的快樂.不是因為他擁有得多,而是因為他計較得少。
返回列表 上一主題