Board logo

標題: [發問] 可以把variable定義檔名? [打印本頁]

作者: zxcxz    時間: 2014-1-30 20:44     標題: 可以把variable定義檔名?

Fname 可以怎樣定義才如thisworkbook一樣可用.name/.path 的方法取得路徑及檔名?
因為有多個檔案需要存取而select檔案時要用短檔名,存取時卻要用到長檔名
這樣會用上太多variable而且比較混亂。有方法嗎?感謝!

a = C:\excel
b = abc.xlsx
c = C:\excel\abc.xlsx
  1. Sub Macro1()
  2. Dim Fname As ?????
  3. Fname = "C:\excel\abc.xlsx"
  4. a = Fname.Path
  5. b = Fname.Name
  6. c = Fname.Fullname
  7. End Sub
複製代碼

作者: GBKEE    時間: 2014-1-31 08:49

因為有多個檔案需要存取而select檔案時要用短檔名,存取時卻要用到長檔名zxcxz 發表於 2014/1/30 20:44

可以說明一下你的狀況?
作者: zxcxz    時間: 2014-2-1 08:08

回復 2# GBKEE
我想將Fname可以用上.name及.path,讓我可以用 Fname.path 代表 C:\excel, Fname.name 代表 abc.xlsx
類似thisworkbook的類形。

祝 新年進步!
作者: GBKEE    時間: 2014-2-1 08:20

回復 3# zxcxz
是這樣嗎?
  1. Option Explicit
  2. Sub Macro1()
  3.     Dim Fname As Workbook, A As String, B As String, C As String
  4.     Set Fname = Workbooks.Open("C:\excel\abc.xlsx")
  5.     A = Fname.Path
  6.     B = Fname.Name
  7.     C = Fname.FullName
  8. End Sub
複製代碼

作者: zxcxz    時間: 2014-2-1 10:48

回復 4# GBKEE
大約如此,但可否在不需要開啟Fname 情況下作workbook定義?
因為Fname可能已經由人手或其他sub所開啟了
作者: GBKEE    時間: 2014-2-1 10:58

回復 5# zxcxz
試試看
  1. Set Fname = GetObject("C:\excel\abc.xlsx")
複製代碼

作者: zxcxz    時間: 2014-2-3 14:15

回復  zxcxz
試試看
GBKEE 發表於 2014-2-1 10:58

很適合!感激:handshake
作者: zxcxz    時間: 2014-2-3 14:39

又遇上新問題定義為GetObject後
Workbooks.Open (Fname.FullName) 可用
Fname.Name.Select 不能用
Windows(Fname.Name).Close 不能用
作者: GBKEE    時間: 2014-2-4 06:53

回復 8# zxcxz
  1. Fname.Activate  ' Workbooks沒有 Select 方法
  2.   Workbooks(Fname.Name).Activate
  3.   Windows(Fname.Name).Close '2003版可用
  4.   
複製代碼

作者: zxcxz    時間: 2014-2-7 22:19

回復 9# GBKEE
Thanks anyway




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