1、可以把“待选数”和“已选数”看作是同一行上面的一个单元格区域,然后在VBA程序里面使用countif函数对“待选数”的个数进行统计、比较,将个数为1的选出来,填到对应的单元格里面。
2、点击菜单栏上面的【开发工具】,【Visual Basic】。
3、点击VBA编辑器菜单栏上面的【插入】,【模块】。
4、在VBA编辑器的代码框里面输入以下VBA代码程序:Sub Countif2()Dim i, j, k, l As LongS髫潋啜缅et mysheet1 = ThisWorkbook.Worksheets("Sheet1") '定义工作表For i = 2 To 1000 '从第2行到1000行l = 17 '剩余的数从第18列开始填写(后面还有+1)For j = 1 To 16 '从第1列到16列Set myRange = mysheet1.Range(Cells(i, 1), Cells(i, 16)) '定于区域范围k = Application.WorksheetFunction.Countif(myRange, mysheet1.Cells(i, j)) '使用countif进行统计If k = 1 Then '如果计数个数为1,说明它没有被选择,所以将它填写到未选择列里面l = l + 1 '每次填写后,列数增加1mysheet1.Cells(i, l) = mysheet1.Cells(i, j)End IfNextNextEnd Sub
5、函数公式释义:(一)Range主要是VBA里面表示单元格的区域范围,如:mysheet1.Range(Cel造婷用痃ls(2, 1), Cells(2, 16))表示两个单元格之间划定的区域,等价于mysheet1.Range("A2:P2"),表示的区域为A2:P2,由于行数是变量,所以没法直接使用单元格区域。(二)countif函数主要用来统计某一数值在单元格区域里面出现的次数,其用法为countif(查找的单元格区域,查找值)。
6、点击VBA编辑器上面的运行图标运行程序。
7、程序运行完成后,结果也计算出来了。