嗯,谢谢你的回答。 考试了。 出现了别的乱码。 我再次想到了帖子第一帖: http://club.excel home.net/thread-893760-1-1.html。 问题解决了。 原因是“XMLHTTP的默认值为UTF-8”
Sub te4t () )。
Dim strRespText$,tt$,I,DW$
On Error Resume Next
For i=3 To 4
a=cells(I,1 ).Value
with createobject (Microsoft.xmlhttp )。
. Open 'GET ',a,False '抓住的链接,' GET '尽量大写,以使某些系统不兼容
. Send
tt=.responsetext
with createobject (new : (1c3b 4210-f441-11ce-b9ea-00aa 006 B1 a69 ) )数据对象、数据放入剪贴板,用记事本查看数据
. settextTT'xmlhttp默认为UTF-8,因此无法识别gb2312,从而发现数据乱码
由于. PutInClipboard ',无法使用. responsetext对象获得字符串
结束宽度
setbytestobstr=server.createobject (adodb.stream ) )。
TT=bytestobstr(.responsebody,' GB2312 ' ) ',因此使用Adodb.Stream对象
使用' TT=StrConv(.ResponseBody,vbUnicode,H804 ) )或strconv函数从. responsebody获取字符串
' TT=strconv(.responsebody,vbUnicode ) '网页为GB2312,所以即使是简体版的操作系统也可以不写第三个参数
with createobject (new : (1c3b 4210-f441-11ce-b9ea-00aa 006 B1 a69 ) ) )中得到的字符串放入剪贴板,用记事本观察数据
. SetText tt '数据现在可以正常显示和提取
. PutInClipboard
结束宽度
cells(I,2 ).value=worksheet function.substitute (split (TT,'
()、()、)、)、chr(10、)、)、Cells(i ) I、3 )、value=worksheet function.substitute ) split )、(TT、)
For j=1 To 100
clls(I,3 j ).value=worksheet function.substitute ) split(Split(TT,'') j ),'
Ifcells(I,3 j )='' Then GoTo xiayige
下一步
xiayige:
结束宽度
下一步
MsgBox '【完】'
最终辅
用这个代码替换可以解决问题。