返回列表 上一主題 發帖

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

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

請問各位大大

最近幫個客戶弄了一個巨集程式

我本身作業是用2007版EXCEL撰寫,儲存成2003可執行的版本

但到客戶端,發現是2010版的EXCEL

基本上我覺得語法應該沒使用到2010不能使用到的部分(因為都蠻單純的)

主要寫到的功能
1. 開啟要處理的來源檔案
2. 刪除來源檔中不必要的儲存格
3. 改變來源檔圖表的格式
(原本來源檔就有Chart了,只是我刪了不必要的儲存格,所以圖表會有點縮減;且須修改部分格式,像是線寬、標記的樣式等等)
4. 最後跳出處理完成的訊息視窗


客戶端開啟來源檔後,只跳出最後處理完的訊息視窗。

前半段的刪除部分及圖表部分都沒執行到@@

也沒有錯誤訊息


後來我實際用了2010版的EXCEL執行,完全跟用2007執行一樣,結果正常

不知是不是客戶公司那設定了什麼???  


想請問各位大大,這方法有沒有什麼處理方式? 還是可能需要做什麼設定???

P.S. 客戶是用英文版的2010


煩請幫忙  謝謝
用功到世界末日那一天∼∼∼

小弟附個檔讓大家試試

麻煩幫我抓個問題@@

程式是0424,另一個檔案是需要匯入的檔案

我只附了第一個按鈕要開啟的檔案

第二張圖是跑完後應該出現的畫面

TKS~
forum.rar (156.42 KB)
用功到世界末日那一天∼∼∼

TOP

回復 3# GBKEE

版大 你說的偵錯處理

我後來有想到  哈哈

所以都把他關掉

直接讓錯誤顯示出來

以下是經客戶再次測試的結果,麻煩幫我看看,問題點都一樣@@
好像CHART的處理有問題



不過開檔案那個好像沒有問題 ,因為我檔案還是可以開啟執行耶,只是圖表跟儲存格處理有問題

而且我一直不解的是,我找了三個一樣用2010的朋友幫我測試
都一樣正確OK


不知道是不是英文版的有差異 還是需要做什麼設定@@


煩請幫我測試看看  謝謝
用功到世界末日那一天∼∼∼

TOP

回復 5# GBKEE


謝謝版大

轉換成這樣的寫法我自己測試也OK

不過換到對方那邊還是一樣不行@@

且如果With Workbooks的方式變成有副檔名就不行了= =

可是我自己電腦測試有副檔名 沒副檔名都可以

也太奇怪了
用功到世界末日那一天∼∼∼

TOP

本帖最後由 li_hsien 於 2014-4-25 14:43 編輯

回復 7# GBKEE

我環境是2007的,有無副檔名都可以

不過我給客戶(2010英文版),有加副檔名好像會錯誤


現在真不知為什麼客戶那邊2010英文版的為什麼不能執行@@

明明我用自家別台電腦(也是2010)就可以跑出圖表

給其他朋友測試也都可以

不知道是哪段程式或是設定出了問題@@
用功到世界末日那一天∼∼∼

TOP

回復 9# GBKEE


版大 沒關係

謝謝你!!!

平時已經幫忙解決了不少問題

我也學到了不少東西!!!

TKS~
用功到世界末日那一天∼∼∼

TOP

回復 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

回復 12# GBKEE

謝謝版大

結果客戶那邊還是不行

好像是Dir都不管用@@

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

Workbooks.Open filename
w_file = ActiveWorkbook.Name

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

雖然好像笨了點

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

TOP

        靜思自在 : 人要知福、惜福、再造福。
返回列表 上一主題