用VBA进行自动编号,越快越好。
时间:2011-08-11
来源:互联网
目标是:能让电脑运行得越快越好。实际工作中有几百个不同城市,几万个数据要编号。。
请高人指点O(∩_∩)O~
附件

2011-8-11 22:26, 下载次数: 7
作者: llaby 发布时间: 2011-08-11
代码:
Sub numberArea()Dim rng As Range, arr, arrRet() As Long
Dim oDict, i As Long
Set rng = Intersect(Sheet1.UsedRange, Sheet1.Columns(1))
arr = rng
ReDim arrRet(1 To UBound(arr), 1 To 1)
Set oDict = CreateObject("scripting.dictionary")
For i = 1 To UBound(arr)
If oDict.exists(arr(i, 1)) Then
oDict(arr(i, 1)) = oDict(arr(i, 1)) + 1
arrRet(i, 1) = oDict(arr(i, 1))
Else
oDict(arr(i, 1)) = 1
arrRet(i, 1) = oDict(arr(i, 1))
End If
Next i
rng.Offset(, 1) = arrRet
End Sub
作者: livewire 发布时间: 2011-08-11
Sub l()
Dim ar, i%, br()
Dim dic As Object
ar = Sheet1.[a1].CurrentRegion
ReDim br(1 To UBound(ar), 1 To 1)
Set dic = CreateObject("scripting.dictionary")
For i = 1 To UBound(ar)
If Not dic.exists(ar(i, 1)) Then
dic(ar(i, 1)) = 1
Else
dic(ar(i, 1)) = dic(ar(i, 1)) + 1
End If
br(i, 1) = dic(ar(i, 1))
Next
[b1].Resize(UBound(ar)).Value = br
End Sub
作者: AVEL 发布时间: 2011-08-11
附件

2011-8-11 22:46, 下载次数: 4
作者: adong.1111 发布时间: 2011-08-11
Dim d, arr, brr, crr, i, j, m, n, k
arr = Sheet1.Range("a1:a52")
crr = arr
Set d = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(arr, 1)
d(arr(i, 1)) = ""
Next
brr = d.keys
For i = 0 To UBound(brr)
k = 0
For m = 1 To UBound(arr, 1)
If (arr(m, 1)) = brr(i) Then k = k + 1: crr(m, 1) = k
Next
Next
Sheet1.Range("b1").Resize(UBound(crr, 1), 1) = crr
ActiveWindow.SmallScroll Down:=-18
Application.Run "地市编号.xls!Macro1"
ActiveWindow.SmallScroll Down:=-6
Range("B5").Select
ActiveWindow.SmallScroll Down:=-9
End Sub

作者: Qinqinjiang 发布时间: 2011-08-11
作者: AVEL 发布时间: 2011-08-11
又学了不少
作者: Qinqinjiang 发布时间: 2011-08-11
Sub test()
Range([a1], [a65536].End(3)).Offset(, 1).FormulaR1C1 = "=COUNTIF(R1C1:RC[-1],""=""&RC[-1])"
End Sub
作者: AVEL 发布时间: 2011-08-11
作者: llaby 发布时间: 2011-08-11
作者: livewire 发布时间: 2011-08-11
代码:
'凑个热闹Sub tiansh()
Dim i&, Myr&, Arr
Dim d, k, t
Set d = CreateObject("Scripting.Dictionary")
Myr = Sheet1.[a65536].End(xlUp).Row
Arr = Sheet1.Range("a1:a" & Myr)
k = 0
For i = 1 To UBound(Arr)
d(Arr(i, 1)) = d.Item(Arr(i, 1)) + 1
If d.Exists(Arr(i, 1)) Then Cells(i, 3) = d.Item(Arr(i, 1))
k = d.Item(Arr(i, 1)) + 1
Next
End Sub
作者: wkbu 发布时间: 2011-08-11
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28