Excel精英培训网

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

[已解决]对应两列数值有相同 则清除其中一列数值

[复制链接]
发表于 2021-11-7 18:14 | 显示全部楼层 |阅读模式
本帖最后由 lijian8003 于 2021-11-7 18:16 编辑

BA1:GN500 与 HA1:MN500 两区域
BA列对应HA列,如有相同数值,则清除BA列
BB列对应HB列,如有相同数值,则清除BB列
BC列对应HC列,如有相同数值,则清除BC列

GN列对应MN列,如有相同数值,则清除GN列
例如:
BA列        HA列
01            01
01            02        
01            03        
20            04        
20            05        
               06
BA列与HA列有相同数值01,则清除BA列

最佳答案
2021-11-7 19:02
Sub demo()
   a = [ha1:mn1000]:ReDim b(1 To UBound(a, 2), 99)
   For i = 1 To UBound(a)
      For j = 1 To UBound(a, 2): b(j, a(i, j)) = 1: Next
   Next
   a = [ba1:gn1000]
   For x = 1 To UBound(a, 2)
      For y = 1 To UBound(a)
         If a(y, x) = 0 Then Exit For
         If b(x, a(y, x)) Then:[az1:az1000].Offset(, x).ClearContents:exit for
      Next
   Next
End Sub

祝順心,南無阿彌陀佛!



对应两列数值有相同 则清除其中一列数值.zip

13.1 KB, 下载次数: 6

发表于 2021-11-7 19:02 | 显示全部楼层    本楼为最佳答案   
Sub demo()
   a = [ha1:mn1000]:ReDim b(1 To UBound(a, 2), 99)
   For i = 1 To UBound(a)
      For j = 1 To UBound(a, 2): b(j, a(i, j)) = 1: Next
   Next
   a = [ba1:gn1000]
   For x = 1 To UBound(a, 2)
      For y = 1 To UBound(a)
         If a(y, x) = 0 Then Exit For
         If b(x, a(y, x)) Then:[az1:az1000].Offset(, x).ClearContents:exit for
      Next
   Next
End Sub

祝順心,南無阿彌陀佛!



评分

参与人数 1学分 +2 收起 理由
lijian8003 + 2 谢谢!代码运行流畅,结果正确。

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 08:02 , Processed in 0.283242 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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