返回列表 上一主題 發帖

[發問] EXCEL 2007 VBA 在EXCEL 2010 執行出問題

回復 9# GBKEE


版大我還有一問想請教,不知能否幫忙
  1. Sub w_report_Click()

  2.     '-----開啟W表單-----
  3.    
  4.     Dim program_file As String, filename As String, w_file As String
  5.    
  6.     program_file = Left(ActiveWorkbook.Name, Application.Find(".", ActiveWorkbook.Name) - 1)
  7.     filename = Application.GetOpenFilename
  8.    
  9. '    On Error Resume Next
  10. '    On Error GoTo HandleErr

  11.     Workbooks.Open filename

  12.     w_file = Dir(filename)
  13.     Debug.Print w_file

  14.     A w_file
  15.     A_chart w_file
  16.     F w_file
  17.    
  18.     Workbooks(program_file).Worksheets(1).w_file = ""
  19.     MsgBox "DONE !!!"
  20.    
  21. '    Exit Sub
  22. '
  23. 'HandleErr:
  24. '        MsgBox "請開啟W表單。"
  25.         
  26. End Sub
複製代碼
客戶執行時發現出錯在這行
w_file = Dir(filename)
主要是用來抓開啟的檔案名稱

後來我用個儲存格放檔名讓他測試
EX:
w_file = range("A1")   ->儲存格A1來放檔名
這樣就可以了

不知是不是Dir不能使用

請問有什麼另外可以抓到檔名的方法嗎???


哦~而且最後確認
客戶用EXCEL2010英文版的,一樣要像版大說的加上副檔名才行

感謝!!!!
用功到世界末日那一天~~~

TOP

回復 11# li_hsien
  1. MsgBox filename   '有副檔名的
  2. 'Dir 函數 語法 Dir [(pathname[, attributes])]
  3. w_file = Dir(filename, vbNormal)  '加 attributes這參數試試看
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 12# GBKEE

謝謝版大

結果客戶那邊還是不行

好像是Dir都不管用@@

結果我想到比較直觀的方法

Workbooks.Open filename
w_file = ActiveWorkbook.Name

讓來源檔開起來的時候
再接一次ActiveWorkbook.Name

雖然好像笨了點

但是可行  哈哈
用功到世界末日那一天~~~

TOP

        靜思自在 : 道德是提昇自我的明燈,不該是呵斥別人的鞭子。
返回列表 上一主題