设为首页收藏本站

Excel精英培训网

 找回密码
 注册

QQ登录

只需一步,快速开始

你正在寻找更好的Excel学习教程吗?Excel技巧80集+数据透视表+函数初中高全套+VBA80集,想学的这儿全都有
查看: 110|回复: 6

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

[复制链接]
发表于 2017-1-11 16:46 | 显示全部楼层 |阅读模式
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
用VBA计算  每一行3个数字是否相同

本帖子中包含更多资源

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

x
dsmch发布于 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
复制代码
发表于 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, 2017-2-20 09:42 , Processed in 0.124800 second(s), 24 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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