標題:
VBA 有關路徑的問題(算已解決)
[打印本頁]
作者:
icestormer
時間:
2012-4-1 21:20
標題:
VBA 有關路徑的問題(算已解決)
本帖最後由 icestormer 於 2012-5-3 09:34 編輯
file_path_get = Application.GetOpenFilename("EXCE檔(*.XLS),*xls") <<<用左方的程式碼 開舊檔後 取得 完整路徑
C:\Users\user\Desktop\jEveAssets
\測試用2.xls <<完整路徑/檔名 如左
但奇怪的是 我把它 存在P1後
存EXCEL >關掉> 重開.
.
Range("p1").Value = file_path_get '取得完整路徑
神奇的事發生了 他會自動變成
C:\Users\user\Documents
\測試用1.xls <<<不管我把檔案放在那一槽 在那一目錄下 都會被自動改路徑名稱(檔案名不會改) 請問怎會這樣呢?
主要是想弄一個手動選取舊檔並讀取它的完整路徑 再利用路徑做其它使用
另外 不知有沒有什麼方法可以在不開啓目標檔.XLS情況下 讀取到它的工作表(工作表只有一頁)?
目前是採用
傳入參數後>(讀取P1的值(完整路徑)>打開它>取得它的工作表名稱>再關掉後 >回傳工作表名稱
Sub get_sheets_name(sheet_name, close_name)
file_path= Range("p1").Value
Worksheets("分析表").Activate
Workbooks.Open Filename:=file_path
sheet_name = ActiveSheet.Name
Workbooks(close_name).Close
End Sub
PS:我是用W7 及OFFICE2003
作者:
GBKEE
時間:
2012-4-2 10:27
本帖最後由 GBKEE 於 2012-4-2 12:21 編輯
回復
1#
icestormer
Application.GetOpenFilename 是沒有開啟檔案的,如有選取檔案會傳回這檔案的完整路徑名稱
試試看是這樣的嗎?
Option Explicit
Sub Ex()
Dim file_path_get As String, Wo As Workbook
file_path_get = Application.GetOpenFilename("EXCE檔(*.XLS),*xls")
Set Wo = Workbooks.Open(file_path_get) '設定變數為 開啟選取的檔案
WorkBooks("分析表").Sheets(1).[a1] = Wo.Sheets(1).Name '取得第一個工作表名稱
Wo.Close 0 '關閉 選取的檔案 不存檔
End Sub
複製代碼
作者:
icestormer
時間:
2012-4-2 11:17
本帖最後由 icestormer 於 2012-4-2 11:40 編輯
回復
2#
GBKEE
你好
執行下去後出現這個錯誤呢 如下圖(執行階段錯誤 9 ,陣列索引超出範圍
http://imgur.com/xc6Gz
是錯在這行 Worksheets("分析表").Sheets(1).[p1] = Wo.Sheets(1).Name '取得第一個工作表名稱 我是把你的程式碼COPY後完整貼上去執行的 不知方法是否有錯?
另外
神奇的事發生了 他會自動變成
C:\Users\user\Documents\測試用1.xls <<<不管我把檔案放在那一槽 在那一目錄下 都會被自動改路徑名稱(檔案名不會改) 請問怎會這樣呢?
暫時找到另一個方法處理 如果我寫入的路徑名稱是放在[A1]內 這時要另外寫一個 把[a1].copy 到[a2] 然後 巨集就採用[A2]的就可行了
因只要存檔後 [A1]的路徑名稱會被自動改變但 [A2]的郤不會.. 不知這到底是怎一回事..
作者:
icestormer
時間:
2012-4-2 11:41
回復
4#
GBKEE
有 但一樣出現同一個問題
作者:
GBKEE
時間:
2012-4-2 12:31
回復
4#
icestormer
Worksheets("分析表").Sheets(1) 這語法錯誤 已更正 2# 的程式碼
神奇的事發生了 不管我把檔案放在那一槽 在那一目錄下
不是神奇的 是 GetOpenFilename 會傳回選取檔案的完整路徑名稱
[A1]=file_path 當然會自動改路徑名稱
Sub Ex()
Dim file_path_get As String
file_path = Application.GetOpenFilename("EXCE檔(*.XLS),*xls")
MsgBox file_path
End Sub
複製代碼
作者:
icestormer
時間:
2012-4-2 12:45
回復
5#
GBKEE
我的意思是
是神奇的 是 GetOpenFilename 會傳回選取檔案的完整路徑名稱
我用 這個指令 取得一個檔案的完整路徑
[例如A1] 是
C:\Users\user\Desktop
\最近儲存檔\測試用12.xls 但只要我一存檔>關掉EXCEL>重開
就會變成
C:\Users\user\Documents\
測試用1.xls
不管我檔案是放在那裡 檔名為何 都會被自動改變
只有檔案名稱-測試用1.xls
不變
作者:
GBKEE
時間:
2012-4-2 13:22
回復
6#
icestormer
傳上檔案看看
作者:
icestormer
時間:
2012-4-2 16:17
回復
7#
GBKEE
感謝你花時間回復我
不知怎了 剛又重弄了一下 又可行了
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)