ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

自己写的小VBA程序

[复制链接]

TA的精华主题

TA的得分主题

发表于 2012-2-21 17:21 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 jary_yuan 于 2012-2-21 17:39 编辑

关注EH很久了,第一次发帖,呵呵...想和大家共同学习,共同进步。

因为是VBA的初学者,所以写的VBA可能只是小儿科,呵呵,但是对于初学者也许还有一定的参考价值,所以现在把它分享出来,大家互相学习,互相鼓励。

实现的功能;

在Entry工作表中输入数据(名字和销售量),单击控件提交后,销售信息自动保存在Data工作表中。如果是新的Salesname,则会在Data工作表中新增一条记录,不是,则会添加到此人原来的销售量上。

主要知识点;

1.VBA对单元格、工作表的操作
      2.VBA中不同过程之间的调用

3.自定义函数,及自定义函数在过程中的引用。也涉及Excel自带函数的使用。

4.VBA程序的运行。这里用的是单击一个形状来执行。

5.对区域进行命名,并结合数据有效性创建了一个下拉列表框。

6.Auto_Open驱动事件。

7.MsgBox的应用。

8.简单的错误处理机制。


把文件发上来,大家讨论讨论,哈哈

MyVBA.zip

42.36 KB, 下载次数: 438

VBA程序

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-2-21 17:27 | 显示全部楼层
贴部分代码出来;
  1. Sub Record()
  2.     Dim Name As String, NameCell As Range, SalesAmount As Currency, SalesCom As Currency, Ans As Variant, n As Integer

  3.     On Error GoTo Handler: '简单的错误处理

  4.     Set NameCell = Worksheets(1).Range("E8")
  5.     If IsNumeric(NameCell.Value) Or IsEmpty(NameCell) Then 'Ecxel函数 IsNumeric 和 IsEmpty 的使用

  6.         GoTo Handler 'GoTo 语句在处理错误时的使用
  7.     Else
  8.         Name = NameCell.Value
  9.     End If

  10.     SalesAmount = Worksheets(1).Range("E9").Value
  11.     SalesCom = SaleCom(SalesAmount) '自定义函数ScaleCom的使用

  12.     Application.ScreenUpdating = False '关闭屏幕刷新,可以提高程序运行效率
  13.     Worksheets(2).Activate
  14.     Range("A1").Activate

  15.     ProBlank     ' 过程的调用和 Call ProBlank 等价

  16.     If SameName(Name) Then 'SameName 自定义函数,用来判断输入的名字是否已经存在

  17.         For n = 1 To 2
  18.             ActiveCell.Offset(0, n).Value = Add(Choose(n, SalesAmount, SalesCom), n) 'Add自定义函数,在销售员原来数据上添加其销量及提成
  19.         Next n

  20.     Else '列表中不存在,添加新的销售纪录
  21.         ActiveCell.Value = Name
  22.         ActiveCell.Offset(0, 1).Value = SalesAmount
  23.         ActiveCell.Offset(0, 2).Value = SalesCom
  24.     End If


  25.     Worksheets(1).Activate
  26.     Ans = MsgBox("Do you want to enter another sales?", vbYesNo + vbInformation) '询问是否再次添加同一个人的销售记录,MsgBox
  27.     If Ans = vbYes Then
  28.         Range("E9").Value = ""
  29.     Else
  30.         Range("E8").Value = ""
  31.         Range("E9").Value = ""
  32.     End If

  33.     Exit Sub

  34. Handler: '错误处理,提示使用者输入正确的名字及销量
  35.     MsgBox "Please ensure you have entered the right name and sales amount !", vbExclamation
  36.     Worksheets(1).Activate
  37.     Range("E8").Activate

  38. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2012-2-21 17:27 | 显示全部楼层
我也是初学者,感觉你写的相当不错了啊,还有知识点的整理,很有逻辑思维,必须顶你 一个{:soso_e179:}

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-2-21 17:38 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
mouze_jojo 发表于 2012-2-21 17:27
我也是初学者,感觉你写的相当不错了啊,还有知识点的整理,很有逻辑思维,必须顶你 一个

一起加油...呵呵

TA的精华主题

TA的得分主题

发表于 2012-2-22 21:11 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-2-23 13:15 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
sharkzhou 发表于 2012-2-22 21:11
我也是初学。。。努力

呵呵,要努力...

TA的精华主题

TA的得分主题

发表于 2012-3-6 15:02 | 显示全部楼层
真的是初学的吗,你咋个学的啊?

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-3-7 08:09 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
msyangyi 发表于 2012-3-6 15:02
真的是初学的吗,你咋个学的啊?

差不多是吧,看视频教程...

TA的精华主题

TA的得分主题

发表于 2012-3-7 09:28 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
有好的推荐吗???

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-3-7 21:22 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
msyangyi 发表于 2012-3-7 09:28
有好的推荐吗???

MrExcel的教程不错,可以百度一下,很多
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-26 15:34 , Processed in 0.040841 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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