使用VBA选出不重复的数
来源:网络收集 点击: 时间:2024-03-02可以把“待选数”和“已选数”看作是同一行上面的一个单元格区域,然后在VBA程序里面使用countif函数对“待选数”的个数进行统计、比较,将个数为1的选出来,填到对应的单元格里面。

点击菜单栏上面的【开发工具】,【Visual Basic】。

点击VBA编辑器菜单栏上面的【插入】,【模块】。

在VBA编辑器的代码框里面输入以下VBA代码程序:
Sub Countif2()
Dim i, j, k, l As Long
Set 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 每次填写后,列数增加1
mysheet1.Cells(i, l) = mysheet1.Cells(i, j)
End If
Next
Next
End Sub

函数公式释义:
(一)Range主要是VBA里面表示单元格的区域范围,如:mysheet1.Range(Cells(2, 1), Cells(2, 16))表示两个单元格之间划定的区域,等价于mysheet1.Range(A2:P2),表示的区域为A2:P2,由于行数是变量,所以没法直接使用单元格区域。
(二)countif函数主要用来统计某一数值在单元格区域里面出现的次数,其用法为countif(查找的单元格区域,查找值)。
6/7点击VBA编辑器上面的运行图标运行程序。

程序运行完成后,结果也计算出来了。

个人经验,仅供参考。
EXCEL计数填充版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_210526.html