Excel精英培训网

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

[已解决]VBA的多条件设立

[复制链接]
发表于 2013-4-27 16:55 | 显示全部楼层 |阅读模式
新手的烦恼多啊!求助以下vba代码
条件:D列为空时,E列必须为空;
      D列为非空时,E列必须为非空;
另外:D列为非空时,非空单元格行所对应的F列单元格必须为非空;
      E列为非空时,非空单元格行所对应的F列单元格必须为非空。
上述条件不成立,则退出程序,提示“条件不成立”;上述条件成立,则运行下面的代码。
请前辈们指教。谢谢!
最佳答案
2013-4-27 17:49
  1.     'D列为空且E列为空                                        D列非空且(E列非空或F列非空                                                            E列为非空且F列为非空
  2. If (Len(Cells(lRow, 4)) = 0 And Len(Cells(lRow, 5)) = 0) Or (Len(Cells(lRow, 4)) > 0 And (Len(Cells(lRow, 5)) = 0 Or Len(Cells(lRow, 6)) > 0)) Or (Len(Cells(lRow, 5)) > 0 And Len(Cells(lRow, 6)) > 0) Then
  3.     MsgBox "条件成立", vbInformation
  4. Else
  5.     MsgBox "条件不成立", vbCritical
  6.     Exit Sub
  7. End IF
复制代码
这个只针对某列的某行来判断,如果整列的,最后还要判断到某列对应的某行的话,比较复杂了。
发表于 2013-4-27 17:45 | 显示全部楼层
要整列非常还是只判断一列的某行。
回复

使用道具 举报

发表于 2013-4-27 17:49 | 显示全部楼层    本楼为最佳答案   
  1.     'D列为空且E列为空                                        D列非空且(E列非空或F列非空                                                            E列为非空且F列为非空
  2. If (Len(Cells(lRow, 4)) = 0 And Len(Cells(lRow, 5)) = 0) Or (Len(Cells(lRow, 4)) > 0 And (Len(Cells(lRow, 5)) = 0 Or Len(Cells(lRow, 6)) > 0)) Or (Len(Cells(lRow, 5)) > 0 And Len(Cells(lRow, 6)) > 0) Then
  3.     MsgBox "条件成立", vbInformation
  4. Else
  5.     MsgBox "条件不成立", vbCritical
  6.     Exit Sub
  7. End IF
复制代码
这个只针对某列的某行来判断,如果整列的,最后还要判断到某列对应的某行的话,比较复杂了。
回复

使用道具 举报

 楼主| 发表于 2013-4-28 04:51 | 显示全部楼层
我说的D列、E列、F列,指的是列区域,比如,D列是D1:D10、E列是E1:E10、F列是F1:F10
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 13:37 , Processed in 0.370081 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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