Excel精英培训网

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

[已解决]VBA判断问题

[复制链接]
发表于 2016-2-17 11:57 | 显示全部楼层 |阅读模式
本帖最后由 龙送农 于 2016-2-21 14:55 编辑

VBA判断问题:T列单元格显示不相符时,保留S列相对应单元格的数据;T列单元格显示相符时,将对应S列单元格的数据删除。如:T5不相符则保留S5的数据,T5相符则删除S5的数据,依此类推,如附件。

Sub th()
    Dim i%, r%, arr
    r = Range("s65536").End(xlUp).Row
    arr = Range("s1:t" & r)
    For i = 1 To r
        If arr(i, 2) = "相符" Then arr(i, 1) = ""
         If arr(i, 2) = "相符" Then arr(i, 2) = ""
    Next
    Range("s1:t" & r) = arr
End Sub
最佳答案
2016-2-17 12:43
Sub th()
    Dim i%, r%, arr
    r = Range("s65536").End(xlUp).Row
    arr = Range("s1:t" & r)
    For i = 1 To r
        If arr(i, 2) = "相符" Then arr(i, 1) = ""
    Next
    Range("s1:t" & r) = arr
End Sub

VBA判断问题.zip

29.38 KB, 下载次数: 6

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2016-2-17 12:26 | 显示全部楼层
Sub shan()
     Dim arr(), r%, rn As Range
     Set rn = Range("s5").CurrentRegion
     s = rn.Count / 2
     ReDim arr(1 To s, 1 To 2)
     For r = 1 To s
         If rn(r, 2) = "不相符" Then
             i = i + 1
             arr(i, 1) = rn(r, 1): arr(i, 2) = rn(r, 2)
         End If
     Next
     rn.Clear
     Range("s5").Resize(i, 2) = arr
End Sub
回复

使用道具 举报

发表于 2016-2-17 12:43 | 显示全部楼层    本楼为最佳答案   
Sub th()
    Dim i%, r%, arr
    r = Range("s65536").End(xlUp).Row
    arr = Range("s1:t" & r)
    For i = 1 To r
        If arr(i, 2) = "相符" Then arr(i, 1) = ""
    Next
    Range("s1:t" & r) = arr
End Sub
回复

使用道具 举报

 楼主| 发表于 2016-2-17 13:40 | 显示全部楼层
yuhe0008 发表于 2016-2-17 12:43
Sub th()
    Dim i%, r%, arr
    r = Range("s65536").End(xlUp).Row

感谢老师,正是我所要的结果。麻烦您加一点:就是对应S列单元格的数据删除同时将T列“相符”也删除。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 09:06 , Processed in 0.162361 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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