很多前辈都谈过字典的用法,而我这里要说的是关于在字典中取key和item的值的方法。
这个是我在回答http://club.excelhome.net/viewthread.php?tid=520400&pid=3429923&page=1&extra=page%3D1这个帖子时想到的。
取上面数据其中出现只有一次的数据放到sheet2中。
我首先想到的就是用字典,于是就有了下面的部分代码:
至此,字典完成,在keys中,分别是1、2、3、4、5,在items中分别是2、2、2、1、1。
现在要把item为1的key提取出来,以往我的想法是:
即:分别把keys和items赋给s和ss,然后对比,将item中等于1的key传递到另一个数组中。
这时,我突然记起,取数组arr的第n行赋值到某行区域的代码:[a6:c6]=Application.Index(arr,n)
于是想到,用index函数可以取字典中的值吗?
接着,我开始修改代码,便有了下面:
我用Sheet2.[a1].Resize(d.Count) = WorksheetFunction.Transpose(d.keys)一试,结果却多了一个2,成了2、4、5。此时才醒悟,在删除时,一般都是逆向的,以免下面的数据取代了已删除数据的位置,于是就有了最终的代码。