1234

ExcelHome技术论坛

用户名  找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创] 带你入门VBA,第二讲

[复制链接]

TA的精华主题

TA的得分主题

发表于 2004-10-10 08:38 | 显示全部楼层

msgbox、inputbox这两个函数都可以实现在程序运行中,出现信息提示,与用户互动交流。 不同之处msgbox只能跟据预设的几个按钮来返回有限的信息,而inputbox却可以返回用户自由输入的内容,虽然字数有限,但处理的方法就灵活多了,这两个各有所长。

(后来的加的补充)

TA的精华主题

TA的得分主题

发表于 2004-10-10 12:32 | 显示全部楼层

对于

Sub 矩形3_单击() Dim i As Integer Dim k As Integer

For i = 1 To Range("B65536").End(xlUp).Row If Cells(i, 2) > 106 Then k = k + 1 Cells(i, 2).Interior.ColorIndex = 3 End If Next MsgBox "大于106数值个数有" & k & "个", 1 + 64, "统计信息"

End Sub 如果B列中有字符单元格,也认为大于106。这不对吧?

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-10-10 12:43 | 显示全部楼层
以下是引用homerzhang在2004-10-10 12:32:00的发言:

对于

Sub 矩形3_单击() Dim i As Integer Dim k As Integer

For i = 1 To Range("B65536").End(xlUp).Row If Cells(i, 2) > 106 Then k = k + 1 Cells(i, 2).Interior.ColorIndex = 3 End If Next MsgBox "大于106数值个数有" & k & "个", 1 + 64, "统计信息"

End Sub 如果B列中有字符单元格,也认为大于106。这不对吧?

这一段程序是处理数据的,如果数据字符都有

If Cells(i, 2) > 106 Then 改为If Val(Cells(i, 2) )> 106 Then

TA的精华主题

TA的得分主题

发表于 2004-10-11 09:12 | 显示全部楼层

疑问1.if语句单元格前为什么不用‘Sheets("sheet1").’

2.赋值语句的变量在sub外还有效吗(如你的i)

3.K不用赋值,是因为在IF中?

4.这里是不是不能用countif求值

5.Range("b16") = Application.WorksheetFunction.Sum(Range("b1:b15"))中不用value怎么也行

[此贴子已经被作者于2004-10-11 9:15:49编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-10-11 10:03 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
以下是引用happy91在2004-10-11 9:12:00的发言:

疑问1.if语句单元格前为什么不用‘Sheets("sheet1").’

2.赋值语句的变量在sub外还有效吗(如你的i)

3.K不用赋值,是因为在IF中?

4.这里是不是不能用countif求值

5.Range("b16") = Application.WorksheetFunction.Sum(Range("b1:b15"))中不用value怎么也行

1、如果这个宏只在当前工作表运行,可以省去,如果在另个一个工作表执行宏,则必须加上,省略时默认是当前工作表的单元格

2、在SUB外无效

3、K不用赋值,是因为新的变量没声明时初始值都为0

4、可以用COUNIF求值

5、VLAUE可以省略

TA的精华主题

TA的得分主题

发表于 2004-10-11 10:50 | 显示全部楼层

1.两个模块的代码怎么移到一个模块中;

2.end sub后怎么自动产生另一个sub,即不用输入sub...,end sub

3.还有怎么样默认宏的位置在当前工作薄

4.VB编辑器中存的程序是在所有工作薄还是当前工作薄,或......我没找到啊,默认好象是所有工作薄

[此贴子已经被作者于2004-10-13 14:03:03编辑过]

TA的精华主题

TA的得分主题

发表于 2004-10-13 11:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
怎么第二讲落后这么远啊?顶一下。

TA的精华主题

TA的得分主题

发表于 2004-10-13 11:49 | 显示全部楼层
以下是引用兰色幻想在2004-10-5 16:37:00的发言:

其实这个程序是加了个判断,如果统计的结果有>106的值(即A>1)就显示提示对话框,否则就不显示,

1+64参考下面的贴子:

http://club.excelhome.net/dispbbs.asp?boardid=5&star=13&replyid=297359&id=62008&skin=0&page=1

变量在程序中如果事先约定,就必须声明,如果没有约定,就根据实际情况而定,一般来说声明最好,这样可以减少运行程序所占用的内存.

注:约定:相关图片如下(VBE编辑器---工具---选项)

中文Excel应用论坛-『 Excel与会计电算化 』-快快快!!!我们一起学习-----VBA(10月12日更新)错误信息
您在"快快快!!!我们一起学习-----VBA(10月12日更新)"的时候发生错误,共有1项,下面是错误的详细信息
  • 错误的版面参数!请确认您是从有效的连接进入。
  • 请仔细阅读论坛帮助文件,确保您有相应的操作权限。
  • << 返回上一页
    你的链接无效,我还没弄明白“1+64”跟“1+32”的意思。谢谢了。

    TA的精华主题

    TA的得分主题

    发表于 2004-10-13 11:51 | 显示全部楼层
    [广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

    兰老师你的关于“1+64”,“1+32”的有关说明的那个连接无效,打不开,能帮我解答一下么?谢谢。

    TA的精华主题

    TA的得分主题

    发表于 2004-10-13 12:20 | 显示全部楼层
    以下是引用黑色幽默在2004-10-13 11:51:00的发言:

    兰老师你的关于“1+64”,“1+32”的有关说明的那个连接无效,打不开,能帮我解答一下么?谢谢。

    答案在33楼
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    1234

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

    GMT+8, 2025-4-18 13:28 , Processed in 0.023894 second(s), 7 queries , Gzip On, MemCache On.

    Powered by Discuz! X3.4

    © 1999-2023 Wooffice Inc.

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

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

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