今天想更精准的统计网站的访问来源,就把访问的链接的尾缀直接加多个相关的中文关键词,虽然链接是可以正常访问,但是统计工具是默认把它进行url编码的,就是类似%F4%45%S7%D1%C4这样的编码,不能直接看到这个是什么关键词,这个就要用到url的编码跟解码了,虽然网上很多这样的工具或批量工具,但想想,感觉这功能excel应该是可以实现的,而且平时统计也都是用到excel表格,要是用单独的批量工具,其实也很麻烦,excel能实现自然更好,然后百度一下,还真有,然后就整理如下面的函数和经验分享,希望对路过的小伙伴有用。
url编码函数(中文编译成编码)
Function GetURL$(txt$, Optional LC = &H804)
Dim a() As Byte: a = StrConv(txt, vbFromUnicode, LC)
For i = 0 To UBound(a)
GetURL = GetURL & "%" & Right("0" & Hex(a(i)), 2)
Next
End Function
url解码函数(乱码编译成中文)
Function URLDecode(ByVal strIn)
URLDecode = ""
Dim sl: sl = 1
Dim tl: tl = 1
Dim key: key = "%"
Dim kl: kl = Len(key)
sl = InStr(sl, strIn, key, 1)
Do While sl > 0
If (tl = 1 And sl <> 1) Or tl < sl Then
URLDecode = URLDecode & Mid(strIn, tl, sl - tl)
End If
Dim hh, hi, hl
Dim a
Select Case UCase(Mid(strIn, sl + kl, 1))
Case "U" 'Unicode URLEncode
a = Mid(strIn, sl + kl + 1, 4)
URLDecode = URLDecode & ChrW("&H" & a)
sl = sl + 6
Case "E" 'UTF-8 URLEncode
hh = Mid(strIn, sl + kl, 2)
a = Int("&H" & hh) 'ascii码
If Abs(a) < 128 Then
sl = sl + 3
URLDecode = URLDecode & Chr(a)
Else
hi = Mid(strIn, sl + 3 + kl, 2)
hl = Mid(strIn, sl + 6 + kl, 2)
a = ("&H" & hh And &HF) * 2 ^ 12 Or ("&H" & hi And &H3F) * 2 ^ 6 Or ("&H" & hl And &H3F)
If a < 0 Then a = a + 65536
URLDecode = URLDecode & ChrW(a)
sl = sl + 9
End If
Case Else 'Asc URLEncode
hh = Mid(strIn, sl + kl, 2) '高位
a = Int("&H" & hh) 'ascii码
If Abs(a) < 128 Then
sl = sl + 3
Else
hi = Mid(strIn, sl + 3 + kl, 2) '低位
a = Int("&H" & hh & hi) '非ascii码
sl = sl + 6
End If
URLDecode = URLDecode & Chr(a)
End Select
tl = sl
sl = InStr(sl, strIn, key, 1)
Loop
URLDecode = URLDecode & Mid(strIn, tl)
End Function
如何使用excel自定义函数
1.打开excel
2.1ALT+F11,会打开VB窗口
3.找到“插入”,选择插入模块
4.把以上代码分别复制到不同模块,然后保存。
5.关掉VB窗口,直接在顶部的输入框输入函数名字即可。(跟使用其他默认函数的方法一样的)
效果预览
© 2018 www.qingketang.net 鄂ICP备18027844号-1
武汉快勤科技有限公司 13554402156 武汉市东湖新技术开发区关山二路特一号国际企业中心6幢4层7号
扫码关注,全站教程免费播放
订单金额:
支付金额:
支付方式: