ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

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

    [复制链接]

TA的精华主题

TA的得分主题

发表于 2009-8-28 09:25 | 显示全部楼层
本帖已被收录到知识树中,索引项:开发帮助和教程
原帖由 ggsmart 于 2009-8-27 11:05 发表

呵呵。。。。。不错,但是有些不足:
1、如果总花名册中超过107条记录或者新增加了记录的话,分类时就不能全分完了。
2、如果点击按钮两次或两次以上,分表中的记录会重复。

想一想解决的办法!

这两个问题 已经修改上传了,可是我知道还有别的问题 但是更想做新作业……

TA的精华主题

TA的得分主题

发表于 2009-8-28 09:37 | 显示全部楼层
我徘徊在编程大门之外几十年了,很来没有踏进去过……现在知道了,我可以从这个叫VBA的大门进去。谢谢!

TA的精华主题

TA的得分主题

发表于 2009-8-28 09:40 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
小月的作业时重新按照地区重建一个新的工作表 这点我想学……(*^__^*) 嘻嘻……

TA的精华主题

TA的得分主题

发表于 2009-8-28 11:15 | 显示全部楼层
终于把第二页的内容学完了。休息一下。谢谢老师,我一定会赶上来的。

TA的精华主题

TA的得分主题

发表于 2009-8-28 11:17 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
终于把第二页的内容学完了,休息一下。感谢老师和这么多的热心的同学。我一定会赶上来的。

TA的精华主题

TA的得分主题

发表于 2009-8-28 13:16 | 显示全部楼层
真是入门的好帖子,非常感谢

TA的精华主题

TA的得分主题

发表于 2009-8-28 16:37 | 显示全部楼层

回复 1楼 ggsmart 的帖子

得一真传者,莫为我也。。
ggsmart 老师,传千人不如传一人,传一人等于传千人。。
学生有礼了,下跪拜师.收个徒弟吧,我需要一个关心偶的师傅,方言道:师傅领进门,修行靠个人"学生定将努力学习您的精髓,不会枉会你收我这个徒弟的.....也不枉费你写出这么好的入门手册.
期待....
一直期待...

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-8-28 16:44 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
新建工作表
---------------------

        在“花名册分类”的作业里,moon2778加入了为不同地区建立工作表代码,让“沧海一滴”和“宝贝有酒窝”两个朋友都跟贴问了新建工作表的相关问题。有需要就有市场,呵呵......那我再在这里简单讲一讲我对新建工作表的认识,希望对大家学习有帮助。

        新建一个工作表(Worksheet),要调用工作表(Worksheet对象)的Add方法(可以建制一个新建工作表的宏来查看相关的代码)。
        如果我们想在当前工作表中新建一个工作表,代码可以写为:

  1.            Worksheets.Add '新建的工作表的位置在当前活动工作表的前面
  2.         
复制代码
此时,新建的工作表Excel默认把它放在活动工作表的前面,如果我们需要改变它的位置也是可以的。例如:

  1.           Worksheets.Add before:=Worksheets("sheet2")  '在工作表sheet2之前添加一个工作表
  2.           Worksheets.Add before:=Worksheets(1)   '在最前面添加一个工作表
  3.           Worksheets.Add after:=Worksheets("sheet2") '在工作表sheet2之后添加一个工作表"
  4.           Worksheets.Add after:=Worksheets(Worksheets.Count) '在最后面添加一个工作表
  5.       
复制代码
试了以上的代码,我们会发现,新添加的工作表都是采用“老大、老二、老三.....”的命名方式,如果你需要为新添加的工作表改一个名字,也是可以的,只需要再添加一句代码即可:

  1.         Worksheets.Add before:=Worksheets(1) '在最前面添加一个工作表
  2.         ActiveSheet.Name = "abc"  '将新建的工作表更名为“abc”
  3.       
复制代码
如果想更简单点,这句代码还可以合二为一:

  1.          Worksheets.Add(before:=Worksheets(1)).Name = "abc" '在最前面添加一个名称为“abc”的工作表
  2.       
复制代码
有时,也许需要一步就添加多个工作表,那可用下面的代码:

  1.         Worksheets.Add Count:=3   '添加三个工作
  2.      
复制代码
    但是一次性添加多个工作表时,好像就无法同时对其重新命名了。
---------------------------------------------------------------------------------------------------------
     关于247楼朋友的提问
   
原帖由 沧海一滴 于 2009-8-27 19:13 发表
    楼主你好!
    我可能没有表达完整,现再重新解释如下:
    1、“花名册”中有固定的工作表三个或四个,而“花名册”只是其中之一工作表;
    2、用“moon2778”作业为例子,当没有建立子工作表情况下,建立时,如何在固定工作表后重新建立分配后的工作表。


        moon2778的例子里,在新建工作表之前,先执行了一个删除工作表的操作,把工作薄中所有不是当前工作表的所有工作表全部删除。如果你的工作薄里原有子工作表的话,建议你用我在213楼(http://club.excelhome.net/viewthread.php?tid=470603&page=22#pid3110867)的回复里的方法。我们可以在新建工作表的时候,先在工作表集合里看一下是否有我们需要添加的工作表,如果没有,则执行添加操作。这样,就不用去删除所有的工作表了。
       还是拿“花名册汇总”例子的工作表来说吧,如果我们需要自己新建相应的工作表,并命名,可用以下代码:

  1. Sub shtadd()
  2.   On Error Resume Next '出现错误继续执行下一句
  3.     Dim xrow As Integer
  4.     xrow = Worksheets("外在本就读花名册").[b65536].End(xlUp).Row
  5.     For i = 3 To xrow
  6.        If Worksheets("外在本就读花名册").Cells(i, 8).Value = "清镇" Then
  7.           If Worksheets(Worksheets("外在本就读花名册").Cells(i, 9).Value) Is Nothing Then '     '判断是否存在该地区的子工作表
  8.               Worksheets.Add(after:=Worksheets(Worksheets.Count)).Name = Worksheets("外在本就读花名册").Cells(i, 9).Value '新建表并命名
  9.          End If
  10.      nd If
  11.   Next
  12. If Worksheets("清镇市外") Is Nothing Then            '判断是否存在“清镇市外”工作表
  13.     Worksheets.Add(after:=Worksheets(Worksheets.Count)).Name = "清镇市外"
  14. End If
  15. End Sub
复制代码
以上代码是按moon2278的思路更改,但只是添加表格并给表格命名,并没有对表格进行设置,所以如果需要对表格进行格式设置(比如添加表头),可再自行添加相应的代码。
表头都是一样的,大家有没有想过用复制来代替新建?复制后,将第三行以下的值全部删除,再对工作表重新命名,也是可以的!

    PS:我休息两天,周一见!

[ 本帖最后由 ggsmart 于 2009-8-28 17:30 编辑 ]

TA的精华主题

TA的得分主题

发表于 2009-8-28 17:18 | 显示全部楼层
原帖由 ggsmart 于 2009-8-27 12:53 发表
汇总多工作表花名册

  上一贴中,“花名册分类”的题目主要是检验大家对循环语句、判断语句及一些单元格数据处理的方法。因为目标工作表和源工作表的格式都是一样的,所以处理起来也相对比较简单,无非就是给数 ...


楼主加油,让暴风雨来的更猛烈些吧。

(ps:自己想代码,自己理思路,自己努力,自己进步)

[ 本帖最后由 moon2778 于 2009-8-28 17:30 编辑 ]

学生花名册汇总——moon2778(2).rar

31.61 KB, 下载次数: 8268

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-8-28 17:37 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 moon2778 于 2009-8-28 17:18 发表


楼主加油,让暴风雨来的更猛烈些吧。

(ps:自己想代码,自己理思路,自己努力,自己进步)

恩,棒!你好凶!!!!历害。
赞赏你的智慧的同时,提个小建议:
建议不要用for-next循环(你的程序中用的是for =2 to 8),改用for each循环。
至于为什么,你可以把“外在本就读花名册”这个工作表换一下位置,比如放在第二个,第三个,或最后看一看就知道了。

[ 本帖最后由 ggsmart 于 2009-8-28 17:40 编辑 ]
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-23 08:27 , Processed in 0.036377 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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