作者:乔山办公网日期:
返回目录:excel表格制作
用如何代码可实现,假设原数据zd在A、B列
Sub main()
Set dic = CreateObject("scripting.dictionary")
arr = Range("A1").CurrentRegion
For i = 1 To UBound(arr)
If dic.exists(arr(i, 2)) = False Then
dic(arr(i, 2)) = arr(i, 1)
Else
If dic(arr(i, 2)) < arr(i, 1) Then
dic.Remove arr(i, 2)
dic(arr(i, 2)) = arr(i, 1)
End If
End If
Next i
[E1].Resize(dic.Count, 1) = Application.Transpose(dic.keys)
[D1].Resize(dic.Count, 1) = Application.Transpose(dic.items)
End Sub
详细步骤如下:
原数据专
Alt+F11,选择sheet1,复制上述代码
关闭返回工作表,alt+F8,掉出宏界面
点击执行,即得到想要的结果属:
补充:看了一下你的截图, 不是调用zhidao其他过程的语句出错.应该是你的某个过程的单词拼写有问题.
你把光标移动到主程序版,按F8单步执行看是哪句出错,主程序没错,再把光标移动到其他的宏权再单步执行检查.依次看时哪里的问题.
Sub all()
第一个宏_黄
第三个宏_红
第二个宏_黑
End Sub
Sub 第一个宏_黄()
MsgBox "第一个宏"
End Sub
Sub 第二个宏_黑()
MsgBox "第二个宏"
End Sub
Sub 第三个宏_红()
MsgBox "第三个宏"
End Sub
发你的文件来,我能写
为什么要这样做?