循环单元格并获取所有表单中string值的计数,并将计数序列打印在相应表单的另一列中

我坚持一个问题在Excel中,也是新的VBAmacros。 我有一个excel文件中的4张(sheet 1,sheet 2,sheet 3,sheet 4),它由所有表格中的相同的两列组成。 列“人名”和“序列计数”我的工作表是这样的:

表1
人名| 序列号
约翰            
约翰
约翰
马修
王子
拉吉
拉吉
鲸
工作表2
人名| 序列号
约翰            
约翰
马修
马修
王子
王子
拉吉
拉吉
拉吉
鲸
鲸
表3
人名| 序列号
约翰            
约翰
约翰
约翰
马修
王子
沙
拉吉
拉吉
拉吉
鲸

现在运行所需的macros后,我需要这种格式的输出

表1
人名| 序列号
约翰1
约翰2
约翰3
马修1
王子1
拉吉1
拉吉2
鲸1
工作表2
人名| 序列号
约翰4
约翰5
马修2
马修3
王子2
王子3
拉杰3
拉吉4  
拉杰5
鲸鱼2
鲸鱼3
表3
人名| 序列号
约翰6
约翰7
约翰8
约翰9
马修4
王子4
桑迪1
拉吉6
拉吉7
拉杰8
鲸鱼4

我的意思是说,在表1中,名为“约翰”的值有4个计数,所以它被打印在序号1,2,3,4和表2中,相同的值“约翰”再次出现2次,所以在序列号列中,计数从表1(5,6)继续。 当数值在序列号列中变为“Mathew”时,它已经分配了计数(1)表1,在表2中为特殊值“Mathew”计数从表1开始增加并且被打印,现在,这应该适用于所有的值。

请帮助我,因为数据是巨大的,不可能手动操作。 请告诉我在macros中的方式。 提前致谢。

放入以下代码并添加对“Microsoft脚本运行时”(工具>参考)的引用,以便可以使用字典结构

 Sub CountOccurence() ' Reference: Microsoft Scripting Runtime Application.ScreenUpdating = False Set oDict = New Dictionary Dim Shts() As Variant Dim wS As Worksheet Dim r As Integer, rLast As Integer Dim i As Integer Shts = Array("Sheet1", "Sheet2", "Sheet3", "Sheet4") For i = 0 To 3 Step 1 Set wS = Sheets(Shts(i)) rLast = wS.Cells(1, 1).CurrentRegion.Rows.Count For r = 2 To rLast Step 1 If Not (oDict.Exists(wS.Cells(r, 1).Value)) Then oDict.Add wS.Cells(r, 1).Value, 1 Else oDict.Item(wS.Cells(r, 1).Value) = oDict.Item(wS.Cells(r, 1).Value) + 1 End If wS.Cells(r, 2).Value = oDict.Item(wS.Cells(r, 1).Value) Next r Next i Set oDict = Nothing Application.ScreenUpdating = True End Sub