江湖救急!!!EXCEL表格中加一VBA,需要:根据地址关键词检索出行政区划代码到指定单元格。如图
2个回答
展开全部
给你写了一个自定义函数,用法跟普通函数一样,括号内为指定单元格。或裤
代码如下,详见附件!
Public Function CTNcode(ByVal Rng As Range) As String
Dim s1 As String, s2 As String, s3 As String
Dim i As Long, arr()
i = Sheet2.[a65536].End(3).Row
arr = Sheet2.Range("A1:B" & i).Value
CTNcode = "-"
Dim dc As Object
Set dc = CreateObject("Scripting.Dictionary")
棚则 For i = 1 To UBound(arr)
If arr(i, 1) = "北京市" Or arr(i, 1) = "天津市" Or arr(i, 1) = "上海市" Or arr(i, 1) = "重庆市" Then
s1 = "": s2 = arr(i, 1): s3 = ""
ElseIf arr(i, 1) Like "*" & "省" Then
s1 = arr(i, 1): s2 = "": s3 = ""
ElseIf arr(i, 1) Like "*" & "市" Then
s2 = arr(i, 1): s3 = ""
Else
s3 = arr(i, 1)
End If
dc(s1 & s2 & s3) = arr(i, 2)
If Rng.Value Like s1 & s2 & s3 & "*" Then CTNcode = arr(i, 衫和简2)
Next
End Function
更多追问追答
追问
大侠:我下载了你的附件,并将代码复制到我的EXCEL表格中的模块,添加了“自治区”的区划,保存后,调用函数,运行正常。
可是,如果在地址中没有输入最高级别例如“黑龙江省齐齐哈尔市龙江县”,未加黑龙江省,输入“齐齐哈尔市龙江县”,调用函数显示默认值“-”,怎么解决?
追答
是的,我原先的代码就是如果你没有写省市全称,就不能获得完全正确的结果!所以我也说了,代码可能有漏洞!
相关代码已经在附件中修正,你再试试!!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询