|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
wcymiss 发表于 2014-10-21 13:19 
常用代码及自定义函数:
1、网抓主体代码:代码里的很多""就是留给你的填空题。。。
老师,我用6个转码函数中的encodeURI测试以下回帖中的网址字符串“HTTP://www.apabi.com/ValidateCode.aspx”,结果如下:
HTTP%3A%2F%2Fwww.apabi.com%2FValidateCode.aspx
似乎只能将英文符号及汉字转化为实体字符串(即带百分号的字符串),而不能将英文字母转换,数字干脆就不见了。其它转码函数都不成功(有的为空,有的出错)。不知为何?
发表于 2014-11-19 10:31:33 |只看该作者 |(自己)
★财务、会计、人力资源、行政、生管、销售、市场、学校管理:Excel 行业应用系列视频课程精彩放送中★
本帖最后由 VBA万岁 于 2014-11-19 10:35 编辑
VBA万岁 发表于 2014-11-18 16:22 
终于在以下网址找到更为详尽的介绍了:
http://www.w3school.com.cn/tags/html_ref_urlencode.html
...
索性自已根据160楼链接网页中的表格数据编了个自定义函数用于将常用的网址字符串转义为“\u00**”形式的字符串(想必论坛中有现成的转义函数,但我没搜到,若有谁知道,望告知):
Function URLencode(strASCII As String) As String
Dim arr, i, n
Const str As String = "123456789012345678901234567890123456789@ABCDEFGHIPQRSTUVWXY`abcdefghipqrstuvwxy01234567890123456789001*+,-./:;<=>?JKLMNOZ[\]^_jklmnoz{|}~ 345678"
arr = Array("a", "b", "c", "d", "e", "f")
For i = 1 To Len(strASCII)
n = InStr(str, Mid(strASCII, i, 1))
If n <= 90 Then URLencode = URLencode & "\u00" & n Else URLencode = URLencode & "\u00" & Int((n - 91) / 6) & arr((n - 91) Mod 6)
Next
End Function
Sub test()
MsgBox URLencode("HTTP://www.apabi.com/ValidateCode.aspx")
End Sub
以上代码中常数变量str中的数字可根据实际情况而用其它字符取代——如“$”转义后为“\u0024”,则可将第3(即:2+1)个4用“$”替代。
|
|
|