|
楼主 |
发表于 2016-10-26 08:18
|
显示全部楼层
本帖最后由 hhjjpp 于 2016-10-26 08:20 编辑
- Sub lqxs()
- Dim Arr, i&, j&, n&, d
- Set d = CreateObject("Scripting.Dictionary")
- Arr = [a1].CurrentRegion
- Cells.Interior.ColorIndex = xlNone
- For i = 1 To UBound(Arr)
- If Not d.exists(Arr(i, 3)) And Len(Arr(i, 3)) Then
- d(Arr(i, 3)) = n Mod 53 + 3
- n = n + 1
- End If
- Next
- For i = 1 To UBound(Arr)
- If d.exists(Arr(i, 3)) Then
- Cells(i, 3).Interior.ColorIndex = d(Arr(i, 3))
- Cells(i, 3).Font.ColorIndex = 33 - d(Arr(i, 3)) Mod 53 '保证负数取圈邻末数
- End If
- Next
- End Sub
复制代码
楼上附件原在xp+03,回家拿到win7+03居然没问题;但这个原文件xl-h.xls今早一打开,到第3位在字典未赋值之前“陈闽海”就已存在key值,监视窗口d(Arr(i, 3))为空值,然后执行14行的d.RemoveAll,居然杀不死陈闽海
昨晚的附件见下,拿回xp+03打开执行,一切正常!与楼上附件比只删除了调试用的代码,加了一行给字体添色的代码而已! |
|