Excel精英培训网

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

[已解决]求助A1至A14共有14个单元格,每个单元格为空时必须提示,共有多少次提示呢?

[复制链接]
发表于 2013-7-29 22:21 | 显示全部楼层 |阅读模式
求助A1至A14共有14个单元格,每个单元格为空时必须提示,共有多少次提示呢?如何计算。谢谢
例如:现拿3个单元格说来说有
1种方法:ABC均为空
2种方法:AB为空
3种方法:AC为空
4种方法:BC为空
5种方法:A为空
6种方法:B为空
7种方法:C为空

最佳答案
2013-7-30 09:52
qinhuan66 发表于 2013-7-30 06:42
很给力!做得很好。谢谢。如果自定义单元格能行吗?谢谢
比如像下面那样的,不过有14个自定义单 ...
  1. Sub CheckValue()
  2. Dim d
  3. Set d = CreateObject("Scripting.Dictionary")
  4.     If Len([e6]) = 0 Then d("缴款人(E6)") = "缴款人(E6)"
  5.     If Len([j9]) = 0 Then d("成年人正常缴费(J9)") = "成年人正常缴费(J9)"
  6.     If Len([j10]) = 0 Then d("未成年人正常缴费(J10)") = "未成年人正常缴费(J10)"
  7.     If Len(Join(d.keys, ",")) Then MsgBox Join(d.keys, ",") & "未填写": Exit Sub
  8. End Sub
复制代码
 楼主| 发表于 2013-7-29 23:11 | 显示全部楼层
经算为2^14-1=16383次,不知是否能否用VBA生成出各个组合呢。谢谢   以字母ABCDEFGHIJKL....代替。谢谢
回复

使用道具 举报

发表于 2013-7-29 23:27 | 显示全部楼层
  1. Option Explicit
  2. Sub test()
  3. Dim i, EV
  4. For i = 1 To 14
  5. If Cells(i, 1) = "" Then EV = IIf(EV = "", Cells(i, 1).Address(0, 0), EV & "," & Cells(i, 1).Address(0, 0))
  6. Next i
  7. MsgBox "单元格" & EV & "没有数值"
  8. End Sub
复制代码

评分

参与人数 1 +3 收起 理由
qinhuan66 + 3 很给力!做得很好。谢谢。如果自定义单元格能.

查看全部评分

回复

使用道具 举报

发表于 2013-7-29 23:36 | 显示全部楼层
楼上正解!~
回复

使用道具 举报

 楼主| 发表于 2013-7-30 06:42 | 显示全部楼层
suye1010 发表于 2013-7-29 23:27

很给力!做得很好。谢谢。如果自定义单元格能行吗?谢谢
比如像下面那样的,不过有14个自定义单元格。谢谢
  1. If Len([e6]) = 0 And Len([j9]) = 0 And Len([j10]) = 0 Then
  2.         MsgBox "缴款人(E6)、成年人正常缴费(J9)、未成年人正常缴费(J10) 均未填写。"
  3.         Exit Sub
  4.     End If
  5.    
  6.     If Len([e6]) = 0 And Len([j9]) = 0 Then
  7.         MsgBox "缴款人(E6)、成年人正常缴费(J9) 未填写。"
  8.         Exit Sub
  9.     End If
  10.    
  11.     If Len([e6]) = 0 And Len([j10]) = 0 Then
  12.         MsgBox "缴款人(E6)、未成年人正常缴费(J10) 未填写。"
  13.         Exit Sub
  14.     End If
  15.    
  16.     If Len([j9]) = 0 And Len([j10]) = 0 Then
  17.         MsgBox "成年人正常缴费(J9)、未成年人正常缴费(J10) 未填写。"
  18.         Exit Sub
  19.     End If
  20.    
  21.     If Len([e6]) = 0 Then
  22.         MsgBox "缴款人(E6) 未填写。"
  23.         Exit Sub
  24.     End If
  25.    
  26.     If Len([j9]) = 0 Then
  27.         MsgBox "成年人正常缴费(J9) 未填写。"
  28.         Exit Sub
  29.     End If
  30.    
  31.     If Len([j10]) = 0 Then
  32.         MsgBox "未成年人正常缴费(J10) 未填写。"
  33.         Exit Sub
  34.     End If
复制代码

点评

如果你上个附件的话,我想代码还可以更简单.  发表于 2013-7-30 09:54
可以的,可以用个union把要判断的单元格转化为一个区域,再用for each…next循环判断  发表于 2013-7-30 07:24
回复

使用道具 举报

发表于 2013-7-30 09:52 | 显示全部楼层    本楼为最佳答案   
qinhuan66 发表于 2013-7-30 06:42
很给力!做得很好。谢谢。如果自定义单元格能行吗?谢谢
比如像下面那样的,不过有14个自定义单 ...
  1. Sub CheckValue()
  2. Dim d
  3. Set d = CreateObject("Scripting.Dictionary")
  4.     If Len([e6]) = 0 Then d("缴款人(E6)") = "缴款人(E6)"
  5.     If Len([j9]) = 0 Then d("成年人正常缴费(J9)") = "成年人正常缴费(J9)"
  6.     If Len([j10]) = 0 Then d("未成年人正常缴费(J10)") = "未成年人正常缴费(J10)"
  7.     If Len(Join(d.keys, ",")) Then MsgBox Join(d.keys, ",") & "未填写": Exit Sub
  8. End Sub
复制代码

评分

参与人数 1 +3 收起 理由
qinhuan66 + 3 神马都是浮云,太强大了。谢谢您。我以为真的.

查看全部评分

回复

使用道具 举报

发表于 2013-7-30 09:58 | 显示全部楼层
好好学习
回复

使用道具 举报

 楼主| 发表于 2013-7-30 14:12 | 显示全部楼层
suye1010 发表于 2013-7-30 09:52

老师我有个幼稚的想法,这样是实现了哪个单元格为空时弹出提示,能否在弹出提示的前提下一起更改那些为空的单元格的底色为黄色呢?谢谢。
回复

使用道具 举报

发表于 2013-7-31 11:12 | 显示全部楼层
qinhuan66 发表于 2013-7-30 14:12
老师我有个幼稚的想法,这样是实现了哪个单元格为空时弹出提示,能否在弹出提示的前提下一起更改那些为空 ...

想法无所谓幼稚不幼稚的.
这个是可以实现的. 但是我觉得这个功能其实完全没必要用VBA来做的,你可以使用条件格式来提醒就好了. 如果要填的区域为空时都已黄色醒目提示,当填写了内容之后就不填充底色即可.

  1. Sub CheckValue()
  2. Dim d
  3. Set d = CreateObject("Scripting.Dictionary")
  4.     If Len([e6]) = 0 Then d([e6].Address(0, 0)) = "缴款人(E6)"
  5.     If Len([j9]) = 0 Then d([j9].Address(0, 0)) = "成年人正常缴费(J9)"
  6.     If Len([j10]) = 0 Then d([j10].Address(0, 0)) = "未成年人正常缴费(J10)"
  7.     If Len(Join(d.items, ",")) Then
  8.         MsgBox Join(d.items, ",") & "未填写"
  9.         Range(Join(d.keys, ",")).Interior.ColorIndex = 6
  10.         Exit Sub
  11.     End If
  12. End Sub
复制代码

评分

参与人数 1 +3 收起 理由
qinhuan66 + 3 很给力!谢谢您版主

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2013-7-31 16:16 | 显示全部楼层
suye1010 发表于 2013-7-31 11:12
想法无所谓幼稚不幼稚的.
这个是可以实现的. 但是我觉得这个功能其实完全没必要用VBA来做的,你可以使用条 ...

求助为什么点击保存会出现1004应用程序定义或对象定义错误。谢谢
报名登记表.rar (143.74 KB, 下载次数: 1)
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-15 18:17 , Processed in 0.302548 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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