none
Run time error 40036 ? RRS feed

  • 問題

  • 我在vb6 中有寫一段程式如下:
    Set xlapp = CreateObject("excel.application")
    xlapp.Visible = True
    Set xlbook = xlapp.workbooks.open("C:\a.xls") '欲讀檔案路徑
    Set xlsheet = xlbook.worksheets(1)
    xlsheet.Activate

    在我的電腦跑都沒問題,可是拿到其他台電腦就會秀出下列錯誤訊息:
    Run time error 40036
    Application-defined or Object-defined error

    這是什麼意思??
    是因為那台電腦沒有灌vb的原因嗎?? 
    我有把 project 作成 .exe 
    excel 檔案開到一半就會跳出這個錯誤訊息
    會不會是因為我做的excel 檔案是excel 2003,結果另一台電腦的 excel 是 2007,所以才會發生這個問題, 在 2003 編寫的 vba 在 2007 中會有問題?? 還是因為那台沒有灌vb 的原因??

    請問我~~該怎麼修改呀??
    2010年3月15日 上午 02:01

解答

所有回覆

  • VB6 引用 excel 2007 發生異常 ...


    Dim xlapp As Object

    xlapp宣告為Object,不是Excel類別吧...
    • 已編輯 Joe Hung 2010年3月15日 上午 03:14
    2010年3月15日 上午 02:24
  • 還是簡單的程式:開啟一個 已存在的excel 檔案
    應該怎麼寫呢??
    不是我這樣寫嗎??
    2010年3月15日 上午 03:33
  • 加上這行  Dim xlapp As Object
    也是一樣~~ 秀  
    Application-defined or Object-defined error
    2010年3月15日 上午 03:48
  • INFO:將資料從 Visual Basic 傳送至 Excel 的方法


    Excel WorkSheet Names

    檔案或sheet是否存在呢...
    2010年3月15日 上午 05:03
  • 檔案是已經存在的
    2010年3月15日 上午 05:06
  • 你貼出來的地方目前沒錯,你可以用 VBScript 測試貼出來的程式碼就知道了。
    所以問題可能發生在別的地方。
    比如說你的參照或是其他。
    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2010年3月15日 下午 02:30
  • 可是為什麼在我的電腦 RUN 都沒問題,到其他台電腦就會 show 這錯誤訊息 ??

    我在想,是不是因為因為我的excel 檔案(內含vba程式) 是在excel 2003 下編輯完成的,結果現在要用的電腦,他的是 excel 2007,會是這個緣故嗎???

    因為他那台沒有灌vb,我只能在我這台電腦轉成 執行檔以後,去那邊執行,vb程式到開啟excel 檔案這一步驟都正常,結果,下一個步驟就跳出此錯誤訊息了~~

    公司又說,要灌vb 要買,我快瘋了~~ >"<

    有人的回答:
    可是看不太懂~

    2010年3月16日 上午 12:25
  • On Error Statement (Visual Basic) 

    一、用On Error抓錯誤的地方。
    二、執行檔用封裝暨部署精靈發行,看用到哪些元件,安裝到別台電腦。
    三、在別台電腦安裝VB6,看錯在哪裡,再移除。
    四、把專案上傳到如Sky Drive等網路空間,看怎麼寫的。

    • 已標示為解答 Lolota Lee 2010年3月22日 上午 09:59
    2010年3月16日 上午 01:54
  • http://cid-351c7209e35a4b5b.skydrive.live.com/self.aspx/%e5%85%ac%e9%96%8b/%e7%a8%8b%e5%bc%8fNO.1-15channel-V1.zip

    壓縮檔有一個vb 程式一個excel 程式,主要就是 excel 會讀電表的值,vb去控制 relay board,電表就去抓每一個relay 的電壓,就是vb跟excel 互相都要連結

    電腦將電表連線的驅動程式裝好後,又秀另外的錯誤,Run-time error 424 Object required 我感覺比較肯定的是,應該就是vb 在與exlcel 連結上,發生了問題,請大大在幫我看看~~

    感謝

    2010年3月22日 上午 04:40
  • Dim xlapp As Object
    Dim xlbook As Object
    Dim xlsheet As Object
    
            'Cells(row, col).Value = Format$(Now() - startTime, "h:nn:ss")
            Cells(row, col).Value = Now() - startTime

    一、安裝ICPDAS I/O card驅動程式。
    二、Excel變數放在最前面,宣告為全域。
    三、修改VBA,參考以上。
    2010年3月22日 上午 05:42
  • Dear Joe Hung:

    1. 使用部署安裝精靈後,動作就正常了,太感謝了

    2. 'Cells(row, col).Value = Format$(Now() - startTime, "h:nn:ss")

         改成→ Cells(row, col).Value = Now() - startTime   這就不能動了,不會跑,改回來又可以
         是顯示format 的關係嗎??

    非常感謝您熱心的回覆,暫時是沒有問題了,希望永遠都沒問題呀~~

    其實還有問題,長官希望把原來的 2秒抓一次值,改為1秒或是0.5秒
    Hung sir,您有什麼建議嗎?? 不知道為什麼,vb時間設定快一點,有時候會卡住,有時候又會太快,我用F8來看,發現是有時候在判斷上比較花時間,好像是不能當在切換relay 時同時 作條件的判斷,就是不能同一個時間作好幾件事情,這應該就是 vb弱的地方吧??
    2010年3月22日 上午 08:12
  • http://www.home.agilent.com/agilent/techSupport.jspx?pid=1000001295:epsg:pro&nid=-536902435.536880933&pageMode=DS&t=80126.k.3&co=171815.i.4&cc=TW&lc=cht&sm=g

    去看卡片規格,繼電器切換也要幾十毫秒吧,存取Excel會超過1秒,VB6為單執行緒。要加快速度的話,建議如下,

    一、直接讀取安捷倫數位電錶值,不經由Excel。

    二、使用多核心電腦,並使用PXI介面Switch Relay。

    三、用C++或.Net使用多執行緒。

    2010年3月22日 上午 08:36