Board logo

標題: [發問] 如何寫自動開啟同日期、類似檔案的程式 (已解決) [打印本頁]

作者: haoxhui    時間: 2011-3-23 23:39     標題: 如何寫自動開啟同日期、類似檔案的程式 (已解決)

本帖最後由 haoxhui 於 2011-3-26 09:36 編輯

Q:
開啟「2011_03_23」的excel檔後,執行自動開啟「20110323」的檔,
同理
開啟「2011_03_24」的excel檔後,執行自動開啟「20110324」的檔,
請問程式應如何寫呢?

因為兩個系統每天都會各產出一個檔案名稱類似的檔案,
為了比較分析內容,
每天都要重複的開啟比較,
真的很麻煩,
想請教各位高手應如何寫這個程式,
感恩吶~
作者: GBKEE    時間: 2011-3-24 08:14

回復 1# haoxhui
Workbooks.Open Replace(ActiveWorkbook.FullName, "_", "")
作者: haoxhui    時間: 2011-3-24 20:16

回復 2# GBKEE


版主,您真是太神奇了!
嗯,是太厲害了!
崇拜!崇拜!
我一直在鑽牛角尖,想說檔案名稱應該要怎麼拆字母,
沒想到這麼簡單就解決了....

那我可以問深入一點嗎?
其實兩個檔案名稱分別是:「A_2010_03_23」、「B20100323」
而且分開在兩個資料匣內,
請問這樣程式要怎麼寫呢?

很抱歉我沒有一次敘述清楚,
造成困擾還請見諒!
作者: FAlonso    時間: 2011-3-24 21:27

Workbooks.Open "C:\Documents and Settings\Administrator\My Documents\A\" & Replace(Replace(ActiveWorkbook.Name, "_", ""), "A", "B")

當中C:\Documents and Settings\Administrator\My Documents\A是B2010xxxx的資料夾位置
作者: GBKEE    時間: 2011-3-24 21:39

回復 3# haoxhui
你還沒說明 「A_2010_03_23」、「B20100323」
兩者 是從 A-B 還是 從 B-A  開啟
下列程式碼是
Right(string, length)  傳回一字串右邊特定數量字元所構成的 Variant (String)。
函數的用法
  1. Sub Ex()
  2.     Dim A(1), B(1)
  3.     A(0) = "D:\"
  4.     B(0) = "D\TEST\"
  5.     A(1) = "A_2010_03_23"
  6.     B(1) = "B20100323"
  7.     A(1) = Right(Replace(A(1), "_", ""), 8)
  8.     B(1) = Right(B(1), 8)
  9.     Workbooks.Open A(0) & A(1)
  10.     Workbooks.Open B(0) & B(1)
  11. End Sub
複製代碼

作者: haoxhui    時間: 2011-3-24 23:10

回復 5# GBKEE

感謝「版主」和「FAlonso」 大大,
我的檔案是由 A 開 B,
版主所教的replace我會練習的,
剛剛我一直在「揣測」如果有兩個地方以上replace的寫法,
FAlonso大大教了我,非常感謝!
而版主第2個程式感覺是比較有邏輯,
但老實說我是有點看不懂啦,
我會再練習看看的!

而我這個問題我晚上摸索時已經克服了,
我的解決方法有點偷雞,
因為我發現A檔案中有一個固定的欄位會顯示日期,
而且就是B檔案的格式20110323,
所以我將程式寫為:
   file_name= Sheets(1).Range("A3").Value
    Workbooks.Open filename:="D:\DailyB\B" & file_name

總之特別感謝版主的熱心回覆,
我會針對版主的方法繼續練習及精進的,
感恩再感恩!




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