Re: [VBA ] windows().activate的問題

看板Visual_Basic作者 (矇面加菲獅)時間18年前 (2007/08/24 23:25), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
※ 引述《oneil (百年孤寂)》之銘言: : 請問一下各位大大 : 小弟剛接觸vba不久,遇到一個奇怪的問題 : 在使用windows().activate時 : 我從網頁上開啟一個excel file (a檔案)的超連結 : 然後要用另外一個EXCEL FILE (b檔案) 把 a 裡面的資料要複製到b : 我使用window("a.xls").activate要把檔案a active起來以便選取複製 : 但是卻出現"超出索引範圍"的錯誤訊息。如果我把a存檔在開啟,之後執行我的程式 : 就沒有這個問題,好像是vba沒辦法抓到a檔案。請問一下有沒有解決的方法呢? : 謝謝大家! IE中的工作表不知道如何抓裡面的資料, 所以只能用下載後再用excel開啟的方式抓資料了 提供一個下載檔案的程式碼給你參考: Dim WithEvents ix As Inet Public Sub test() Set ix = New Inet ix.RemoteHost = "127.0.0.1" '此處填入該網站的ip位址 ix.RemotePort = 80 '網站預設都是80 port ix.Execute "http://127.0.0.1/xxx.xls", "GET" '下載連結中的檔案 End Sub Private Sub ix_StateChanged(ByVal State As Integer) '狀態為 12,代表資料已接收完成... '其他狀態請選取StateChanged然後按F1取得詳細說明 If State = 12 Then Dim xx() As Byte Open "c:\temp\xxx.xls" For Binary As #1 Do xx = ix.GetChunk(1024, icByteArray) '指定每一次迴圈讀取1024bytes If UBound(xx) < 0 Then Exit Do '到達檔案結尾時會得到空的陣列 Put #1, , xx '寫入至本機檔案,檔案路徑由 open 後的字串決定 Loop Close #1 Readxls() '讀取xxx.xls的內容 End If End Sub Private Sub Readxls() Dim wb As Workbook Set wb = Workbooks.Open("c:\temp\xxx.xls") Set ws = wb.Worksheets(1) MsgBox ws.Range("A1").Value wb.Close Kill "c:\temp\xxx.xls" '刪除剛才建立的暫存檔 End Sub -- ▃▅▇▆▄ ▆▂▃ ` 逝去感如何能留住,半點遺留殊不易,██▅▇▄▃ ▇▃▂" . █████████▃i ▁▄▇ 更多悽悽慘慘的遭遇………██▆▃ █▅▆▃ˍ▄* ▂█▄▇▅▂. 我不知道,王~八~蛋~~! ▂▆███ █▄▃ 。fumizuki。Check。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.194.100.4
文章代碼(AID): #16plXSLQ (Visual_Basic)
文章代碼(AID): #16plXSLQ (Visual_Basic)