ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: ggsmart

菜鸟谈VBA最最基础入门《原创》

    [复制链接]

TA的精华主题

TA的得分主题

发表于 2010-1-17 20:49 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖已被收录到知识树中,索引项:开发帮助和教程
Sub test()
  If [a1].Value = "" Then
      MsgBox "A1单元格没有输入数字。"
      Exit Sub '     退出程序
  End If
  Select Case [a1].Value
      Case 0 To 29
          MsgBox "差"
      Case 30 To 59
          MsgBox "不及格"
      Case 60 To 79
          MsgBox "及格"
      Case 80 To 89
          MsgBox "良好"
      Case Else
          MsgBox "优秀"
  End Select
End Sub
为何上面代码case后没有is,而下面代码case后有is呢
Sub Test()
  If [a1].Value = "" Then
      MsgBox "A1单元格没有输入数字。"
      Exit Sub '     退出程序
  End If
  Select Case [a1].Value
      Case Is < 30
          MsgBox "差"
      Case Is < 60
          MsgBox "不及格"
      Case Is < 80
          MsgBox "及格"
      Case Is < 90
          MsgBox "良好"
      Case Else
          MsgBox "优秀"
  End Select
End Sub

[ 本帖最后由 口是心非 于 2010-1-17 20:51 编辑 ]

TA的精华主题

TA的得分主题

发表于 2010-1-17 22:53 | 显示全部楼层

窗体问题

为什么我打开一个新表,建一个窗体,只做了一半,保存退出后,再次打开就没有了!!!

TA的精华主题

TA的得分主题

发表于 2010-1-18 09:48 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-1-18 10:31 | 显示全部楼层
怎么才能把教程全下载下来呢

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-1-18 11:00 | 显示全部楼层

回复 1147楼 阿龙168 的帖子


  1. Sub test1()
  2.   If [a1] = "" Then
  3.       MsgBox "A1单元格没有输入任何内容!"
  4.   Else
  5.      MsgBox "A1单元格已输入内容!"
  6.   End If
  7. End Sub
复制代码
但是当A1单元格为空时先返回--- "A1单元格没有输入任何内容!",然后再返回"A1单元格已输入内容!"
这令我百思不得其解,A1单元格为空,条件为真啊,可是为什么还执行End If后面的语句块呢???


回复:
事实上是,End If后面的语句不管条件为真还是假,都要执行(除非在前面使用了exit sub等退出程序的语句)。对于上面的代码例子,当A1值为空,即条件为真时,执行If和End If之间的语句,然后再执行End If后面的语句。如果条件为假,则不执行If 与End If之间的语句,直接执行End If后面的语句。如果要实现你的要求,代码可改为:

  1. Sub test1()
  2.   If [a1] = "" Then
  3.       MsgBox "A1单元格没有输入任何内容!"
  4.   Else
  5.      MsgBox "A1单元格已输入内容!"
  6.   End If
  7. End Sub
复制代码

[ 本帖最后由 ggsmart 于 2010-1-18 11:05 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-1-18 11:32 | 显示全部楼层

回复 1153楼 口是心非 的帖子

这个问题看一下select case语句的相关说明就知道了。

==============================

语法:

Select Case testexpression
[Case expressionlist-n
[statements-n]] ...
[Case Else
[elsestatements]]
End Select

==============================

Select Case 语句的语法具有以下几个部分:
部分
描述
testexpression必要参数。任何数值表达式或字符串表达式。
expressionlist-n如果有 Case 出现,则为必要参数。其形式为 expressionexpression To expressionIs comparisonoperator expression的一个或多个组成的分界列表To 关键字可用来指定一个数值范围。如果使用 To 关键字,则较小的数值要出现在 To 之前。使用 Is 关键字时,则可以配合比较运算符(除 IsLike 之外来指定一个数值范围。如果没有提供,则 Is 关键字会被自动插入。
statements-n可选参数。一条或多条语句,当 testexpression 匹配expressionlist-n中的任何部分时执行。
elsestatements可选参数。一条或多条语句,当 testexpression 不匹配 Case 子句的任何部分时执行。


[ 本帖最后由 ggsmart 于 2010-1-18 11:36 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-1-18 11:41 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

回复 1150楼 阿龙168 的帖子

前面的楼层里有一个很简单的登录窗体的例子,你可以去看一看。

http://club.excelhome.net/viewth ... ;page=47#pid3162112

TA的精华主题

TA的得分主题

发表于 2010-1-18 12:58 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-1-18 13:42 | 显示全部楼层
严重支持楼主这种提问必回贴的精神

TA的精华主题

TA的得分主题

发表于 2010-1-18 14:35 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
作为新人,十分的感谢!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-23 11:51 , Processed in 0.040056 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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