作者fumizuki (蒙面加菲狮)
看板Visual_Basic
标题Re: [VBA ] windows().activate的问题
时间Fri Aug 24 23:25:14 2007
※ 引述《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