ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

VBA常用技巧代码解析

    [复制链接]

TA的精华主题

TA的得分主题

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

第8部分 控件与用户窗体

本帖已被收录到知识树中,索引项:开发帮助和教程
技巧123         使用多页控件
       在处理可以划分为不同类别的大量信息时可以使用多页控件。例如,在示例中,多页控件的第一页用于显示欢迎信息,另三页显示其他信息。利用多页控件能够将相关信息组织在一起显示出来,同时又能够随时访问整条记录。
       多页控件中的每个页面都是一个窗体,含有自己的控件,并且可以有唯一的布局。一般情况下,多页控件中的页面都有标签,以便让用户选择单个页面。
       在窗体中使用多页控件时,往往希望窗体显示时能显示特定的页面,比如每次打开窗体时先显示第一页的欢迎信息,除了在VBE中选择多页控件的第一页后保存外,还可以通过设置多页控件的Value属性来实现,如下面的代码所示。
  1. #001  Private Sub UserForm_Initialize()
  2. #002      MultiPage1.Value = 0
  3. #003  End Sub
复制代码
代码解析:
       窗体的Initialize事件,在窗体显示时选择多页控件的第一页。
      控件的Value属性定义某给定的控件的状态或内容,对于多页控件标识当前激活页。Value属性是多页控件的默认属性,该属性返回当前活动页面的索引编号(位于多页控件的Pages集合中),零 ( 0 ) 表示是第一页,最大值比总页数少一。
       多页控件的默认事件是Change事件,示例中使用消息框显示当前活动页面的Caption属性,代码如下:
  1. #001  Private Sub MultiPage1_Change()
  2. #002      If MultiPage1.SelectedItem.Index > 0 Then
  3. #003          MsgBox "欢迎来到" & MultiPage1.SelectedItem.Caption & "版块!"
  4. #004      End If
  5. #005  End Sub
复制代码
代码解析:
       MultiPage1_Change过程根据当前活动页面是否是第一页,如果不是则使用消息框显示当前活动页面的Caption属性。
       应用于Page对象的Index属性指Pages集合中Page对象的位置,语法如下:
object.Index [= Integer]
       参数object是必需的,一个有效对象。
       参数Integer是可选的,当前选定的Page对象的索引。
       Index 属性指定了标签出现的顺序,改变Index属性的值将改变多页控件中页面的顺序,第一页的索引值是0,第二页的索引值是 1,依此类推。
       应用于多页控件的SelectedItem属性返回当前选中的Page对象,SelectedItem属性是只读的,用SelectedItem属性可对当前选中的Page对象进行可编程控制。
       运行窗体,多页控件显示第一页的欢迎信息,当选择其他页面时显示提示信息,如图所示。
Snap10.jpg

技巧123 使用多页控件.rar

85.85 KB, 下载次数: 1384

TA的精华主题

TA的得分主题

发表于 2009-4-15 20:22 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
到了这里我才知道自己要学的东西太多了,真的是什么也不懂!!

TA的精华主题

TA的得分主题

发表于 2009-4-15 22:04 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-4-15 22:19 | 显示全部楼层
我现在每天都要来这个版块,学习当天版主先生的新作.

TA的精华主题

TA的得分主题

发表于 2009-4-16 00:54 | 显示全部楼层
第一次连续折磨鼠标按钮和滚轮一个多小时!

TA的精华主题

TA的得分主题

发表于 2009-4-16 02:06 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-4-16 09:06 | 显示全部楼层

请问

声明变量类型时,声明为INTEGER、LONG、STRING等类型,有何技巧?即何时声明为INTEGER、LONG、STRING等类型呢?有何区别?

TA的精华主题

TA的得分主题

发表于 2009-4-16 09:16 | 显示全部楼层

删除空格事宜

请问各位大师:本人想将"主生产排程"工作表A列的空格删除,现录制的代码意思是说:在A列右边插入一空列,设公式为=TRIM(A2),向下填充,改为"自动计算(因本人默认的是手动计算)。再粘贴为数值.然后,设A2=B2,向下填充到最后一个非空单元格,粘贴为数值。最后,删除B列!
Sub 消除空格()
Dim rng As Integer
rng = [a65536].End(xlUp).Row
Sheets("主生产排程").Select
     Columns("B:B").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Columns("A:B").Select
    Selection.NumberFormatLocal = "G/通用格式"
    Range("B2").Select
    ActiveCell.FormulaR1C1 = "=TRIM(RC[-1])"
    Range("B2").Select
    Selection.AutoFill Destination:=Range("B2:B" & rng)
    Range("B:B").Select
    Calculate
    Columns("B:B").Select
    'Range("B5").Activate
    Application.Run "PERSONAL.XLSB!选择性粘贴"
    Range("A2").Select
    'Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "=+RC[1]"
    Range("A2").Select
    Selection.AutoFill Destination:=Range("A2:A" & rng)
    Range("A:A").Select
    Calculate
    Selection.End(xlDown).Select
    Columns("A:A").Select
    'Range("A21145").Activate
    Application.Run "PERSONAL.XLSB!选择性粘贴"
    Columns("B:B").Select
    'Application.CutCopyMode = False
    Selection.Delete Shift:=xlToLeft
End Sub

TA的精华主题

TA的得分主题

发表于 2009-4-16 09:25 | 显示全部楼层

关于764楼的问题

各位大师:你们好!
764楼的问题是:其代码运行到rng = [a65536].End(xlUp).Row时,就会出错!

TA的精华主题

TA的得分主题

发表于 2009-4-16 11:34 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-25 01:36 , Processed in 0.035919 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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