实例需求:第二个工作表中的城市编码表(下文中简称为编码表)如左图所示,其中城市数量不确定。第一个工作表中的待填写表格如中图所示,其中首列为非排序状态,并且填写编码时,不能改变首列的数据顺序。
编码填写要求:
- 根据地点从编码表中依次编号
- 如果城市名称在编码表中不存在,则第二列留空
- 如果编码表中对应城市的编码已经用完,则第二列留空
- 注意:编码表中B列编号并非规律顺序编号
实例代码如下。
Sub Demo()
Dim objDic As Object, rngData As Range
Dim i As Long, sKey, arrData
Set objDic = CreateObject("scripting.dictionary")
Set rngData = Sheets(2).Range("A1").CurrentRegion
arrData = rngData.Value
For i = LBound(arrData) + 1 To UBound(arrData)
sKey = arrData(i, 1)
If Not objDic.exists(sKey) Then
Set objDic(sKey) = New Collection
End If
objDic(sKey).Add item:=arrData(i, 2), key:=CStr(objDic