Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1729|回复: 6

[VBA] 用VBA计算 每一行3个数字是否相同

[复制链接]
发表于 2017-1-11 16:46 | 显示全部楼层 |阅读模式
用VBA计算  每一行3个数字是否相同

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2017-1-11 18:24 | 显示全部楼层
我也是新手,这个论坛帮我我很多,也试这帮别人,写的可能不够优化.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1 +3 收起 理由
xiangbaoan + 3 赞一个

查看全部评分

回复

使用道具 举报

发表于 2017-1-11 18:29 | 显示全部楼层
Private Sub CommandButton1_Click()
    Dim a1(2 To 10000)
    Dim a2(2 To 10000)
    Dim a3(2 To 10000)
    arr = Sheets("Sheet1").Range("A1:c" & Sheets("Sheet1").Range("A65536").End(3).Row)
    不同 = 0
    同 = 0
    For i = 2 To UBound(arr)
        a1(i) = arr(i, 1)
        a2(i) = arr(i, 2)
        a3(i) = arr(i, 3)
        If a1(i) <> a2(i) And a1(i) <> a3(i) And a2(i) <> a3(i) Then
            不同 = 不同 + 1
        Else
            同 = 同 + 1
        End If
    Next
    Sheets("Sheet1").Range("h13") = 不同
    Sheets("Sheet1").Range("h16") = 同
End Sub

评分

参与人数 1 +3 收起 理由
laoau138 + 3 来学习

查看全部评分

回复

使用道具 举报

发表于 2017-1-11 20:02 | 显示全部楼层
  1. Sub Macro1()
  2. Dim arr, w(9), i&, j%
  3. arr = Range("a1").CurrentRegion
  4. n = UBound(arr, 2)
  5. For i = 2 To UBound(arr)
  6.     For j = 1 To n
  7.         w(arr(i, j)) = arr(i, j)
  8.     Next
  9.     If Len(Join(w, "")) = n Then s = s + 1
  10.     Erase w
  11. Next
  12. [h13] = s: [h16] = UBound(arr) - s - 1
  13. End Sub
复制代码

评分

参与人数 1 +3 收起 理由
laoau138 + 3 来学习

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2017-1-12 12:33 | 显示全部楼层
本帖最后由 laoau138 于 2017-1-12 17:31 编辑
kmcla 发表于 2017-1-11 18:24
我也是新手,这个论坛帮我我很多,也试这帮别人,写的可能不够优化.

VBA不用A列辅助编号改写逆顺   行数小于60先逆行到1   再从60 59逆下去


http://www.excelpx.com/thread-427134-1-1.html




回复

使用道具 举报

 楼主| 发表于 2017-1-12 12:34 | 显示全部楼层
本帖最后由 laoau138 于 2017-1-12 17:32 编辑
kmcla 发表于 2017-1-11 18:29
Private Sub CommandButton1_Click()
    Dim a1(2 To 10000)
    Dim a2(2 To 10000)

VBA不用A列辅助编号改写逆顺   行数小于60先逆行到1   再从60 59逆下去


http://www.excelpx.com/thread-427134-1-1.html




回复

使用道具 举报

 楼主| 发表于 2017-1-12 12:34 | 显示全部楼层
本帖最后由 laoau138 于 2017-1-12 17:32 编辑

VBA不用A列辅助编号改写逆顺   行数小于60先逆行到1   再从60 59逆下去


http://www.excelpx.com/thread-427134-1-1.html


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-19 08:26 , Processed in 0.348166 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表