ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 711|回复: 9

[求助] 遇到难题了,想了好久还是不行

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-12-9 11:34 | 显示全部楼层 |阅读模式
本帖最后由 albertbake654 于 2019-12-9 14:37 编辑

准备自己想出来,但是想了一天也没搞好。求助大家!谢谢!我想统计A列数据的重合情况,当B2大于等于4的时候,A2向下比对三行(A3,A4,A5)如果A2与A3数字相同,则C3单元格写入”重合“,如果A2与A4数字相同,则C4单元格写入”重合“,如果A2与A5数字相同,则C5单元格写入“”重合“”;当B2等于3的时候,A2向下比对两行(A3,A4),如果A2与A3数字相同,则C3单元格写入”重合“,如果A2与A4数字相同,则C4单元格写入”重合“;当B2等于2时,A2向下比较一行(A3)相同的话则在C3写入“”重合‘’,当B2等于1时C2是什么就是什么。依次向下统计A列数据的重合情况。但是还有一个问题,假设C3是’”重合",则统计A3的时候直接跳过,统计A4与A列后面数据的重合情况。想不出来!求解答!谢谢!
Sub 统计重合()
    Dim i%, t%
    i = 2
    Do While Cells(i, "B") <> ""
        Select Case Cells(i, "B")
            Case Is >= 4
                For t = 1 To 3
                If Cells(i, "A") = Cells(i + t, "A") Then
                    Cells(i + t, "C").Value = "重合"
                Else
                    Cells(i + t, "C").Value = ""
                End If
                Next
            Case Is = 3
                For t = 1 To 2
                If Cells(i, "A") = Cells(i + t, "A") Then
                    Cells(i + t, "C").Value = "重合"
                Else
                    Cells(i + t, "C").Value = ""
                End If
                Next
            Case Is = 2
                If Cells(i, "A") = Cells(i + 1, "A") Then
                    Cells(i + 1, "C").Value = "重合"
                Else
                    Cells(i + 1, "C").Value = ""
                End If
           Case Is = 1
           Cells(i, "C").Value = Cells(i, "C")
            End Select

    i = i + 1
    Loop
End Sub








1.png
2.png

我的难题.rar

36.02 KB, 下载次数: 3

TA的精华主题

TA的得分主题

发表于 2019-12-9 11:39 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
模拟几个结果最好了

TA的精华主题

TA的得分主题

发表于 2019-12-9 11:41 | 显示全部楼层

当B2大于等于4的时候,A2向下比对三行(A3,A4,A5)如果A2与A3数字相同,则C2单元格写入”重合“
——你这句话,以及后面的话,向下比较几行到底有什么意义?
如果A2与A3数字相同。。。。这不全部都是向下比较一行?如果A2与A4相同呢?如果A2与A5相同呢?能不能严谨一点!

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-12-9 14:17 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
东南西北中发财 发表于 2019-12-9 11:41
当B2大于等于4的时候,A2向下比对三行(A3,A4,A5)如果A2与A3数字相同,则C2单元格写入”重合“
—— ...

不好意思,写错了。谢谢您的关注。我想统计A列数据的重合情况,当B2大于等于4的时候,A2向下比对三行(A3,A4,A5)如果A2与A3数字相同,则C3单元格写入”重合“,如果A2与A4数字相同,则C4单元格写入”重合“,如果A2与A5数字相同,则C5单元格写入“”重合“”;当B2等于3的时候,A2向下比对两行(A3,A4),如果A2与A3数字相同,则C3单元格写入”重合“,如果A2与A4数字相同,则C4单元格写入”重合“;当B2等于2时,A2向下比较一行(A3)相同的话则在C3写入“”重合‘’,当B2等于1时C2是什么就是什么。依次向下统计A列数据的重合情况。但是还有一个问题,假设C3是’”重合",则统计A3的时候直接跳过,统计A4与A列后面数据的重合情况。

TA的精华主题

TA的得分主题

发表于 2019-12-9 15:39 | 显示全部楼层
这个意思?

Sub test()
Dim arr, i&, j&
arr = [a1].CurrentRegion
For i = 2 To UBound(arr)
    If arr(i, 3) = "重合" Then GoTo nxt
    For j = 1 To IIf(arr(i, 2) = 2, 1, IIf(arr(i, 2) = 3, 2, IIf(arr(i, 2) >= 4, 3, 0)))
        If arr(i, 1) = arr(i + j, 1) Then arr(i + j, 3) = "重合"
    Next
nxt:
Next
[a1].CurrentRegion = arr
End Sub



评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-12-9 16:29 | 显示全部楼层
本帖最后由 albertbake654 于 2019-12-9 16:48 编辑
月关 发表于 2019-12-9 15:39
这个意思?

Sub test()

谢谢您的代码,让我提升了很多。太谢谢您了!我想了一整天没法子,高山仰止,继续学习!

TA的精华主题

TA的得分主题

发表于 2019-12-9 16:48 | 显示全部楼层
albertbake654 发表于 2019-12-9 16:29
谢谢您的代码,让我提升了很多。但是提示下标越界

不会呀,我这边跑的贼溜,发上你出错的文件来看看

TA的精华主题

TA的得分主题

发表于 2019-12-9 17:03 | 显示全部楼层
  1. Sub test()
  2. Dim arr, i&, j&, n&
  3. [c2:c1000000].ClearContents
  4. arr = [a1].CurrentRegion
  5. For i = 2 To UBound(arr) - 1
  6.   If arr(i, 3) = "" Then
  7.     n = IIf(arr(i, 2) > 4, 3, arr(i, 2) - 1)
  8.     For j = i + 1 To i + n
  9.       If j > UBound(arr) Then Exit For
  10.       If arr(i, 1) = arr(j, 1) Then arr(j, 3) = "chonghe"
  11.     Next j
  12.   End If
  13. Next i
  14. [c1].Resize(UBound(arr)) = Application.Index(arr, , 3)
  15. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-12-9 20:16 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
月关 发表于 2019-12-9 16:48
不会呀,我这边跑的贼溜,发上你出错的文件来看看

确实一点都没问题,太感谢您了!

TA的精华主题

TA的得分主题

发表于 2019-12-10 16:33 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
高手,学习中。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-26 10:49 , Processed in 0.055034 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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