[問題] 改用64bit win7後原vba程式出現錯誤

看板Office作者 (夕陽武士)時間10年前 (2014/06/12 14:56), 編輯推噓0(0010)
留言10則, 2人參與, 最新討論串1/1
之前在xp office2003上寫了一個excel VBA 可以使用ie去點連結後另存新檔 在另存新檔的畫面可以去改檔名 部份程式如下 hcombox32 = FindWindowEx(hWnd, 0, "ComboBoxEx32", vbNullString) hcombox = FindWindowEx(hcombox32, 0, "ComboBox", "") hedit = FindWindowEx(hcombox, 0, "Edit", "") SendMessageByString hedit, WM_SETTEXT, Len(fname), fname hbtn = FindWindowEx(hWnd, 0, vbNullString, "儲存(&S)") 而現在改用win7 64bit office 2010後 程式執行到這段程式就會出錯 hcombox32 = FindWindowEx(hWnd, 0, "ComboBoxEx32", vbNullString) 請高手們指點一下 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.60.111.100 ※ 文章網址: http://www.ptt.cc/bbs/Office/M.1402556165.A.232.html

06/12 15:19, , 1F
上面是否也有寫Private Declare Function FindWindowEx
06/12 15:19, 1F

06/12 15:20, , 2F
再Declare和Function中間加PtrSafe試試
06/12 15:20, 2F

06/14 11:50, , 3F
@soyoso 有改過宣告,執行時也沒有出現錯誤訊息,但
06/14 11:50, 3F

06/14 11:51, , 4F
FindWindowEx就是抓不到資料,傳回值hcombox32是0
06/14 11:51, 4F

06/14 18:40, , 5F
將hcombox32,hcombox用FindWindowEx(hwnd, 0, "Address Ban
06/14 18:40, 5F

06/14 18:41, , 6F
d Root", vbNullString)來取代
06/14 18:41, 6F

06/14 18:42, , 7F
再將取得的hwnd帶入FindWindowEx(hwnd, 0, "Edit", "")
06/14 18:42, 7F

06/14 18:48, , 8F
試試,到hedit有取到值,但不知是否是原po要的
06/14 18:48, 8F

06/15 23:58, , 9F
請教soyoso大大,那個 Address Band Root 是什麼意思?
06/15 23:58, 9F

06/16 01:20, , 10F
網址列,請看連結 http://goo.gl/5yQI3l
06/16 01:20, 10F
文章代碼(AID): #1JcKy58o (Office)