精华内容
下载资源
问答
  • 如图,该表为某公司使用的技能培训出题考试系统,所有的题目为单项选择题,并已经在工作表中插入了相应的控件(4个OptionButton控件以及两个CommandButton控件)。当单击“上一题” 和“下一题”按钮时,使程序更改...

    目录

     码

    CaIIByName函数

    使用CallByName函数获取子对象

    使用CaIIByName函数批量修改对象的属性

    灵活使用自定义过程


        对于多个在Excel工作表中的ActiveX控件,可以批量设置其属性?如图,该表为某公司使用的技能培训出题考试系统,所有的题目为单项选择题,并已经在工作表中插入了相应的控件(4个OptionButton控件以及两个CommandButton控件)。当单击“上一题”
    和“下一题”按钮时,使程序更改OptionButton的Caption属性以显示题目对应的选项。

     码

        通过题号查找下一题或上一题,读取题号和题目至单元格中。使用CallByName函数结合  循环获取每个OptionButton对象,然后更改其Caption属性为各个选项。

    Sheet1码

    Option Explicit
    
    Private Sub CommandButton1_Click()
        ChooseData cdPrevious
    End Sub
    
    Private Sub CommandButton2_Click()
        ChooseData cdNext
    End Sub

    插入模块

    Option Explicit
    
    Enum ChooseDirection
            cdNext = 1
            cdPrevious = -1
    End Enum
    
    Sub ChooseData(cddirection As ChooseDirection)
        Dim dataNumber As Long
        Dim optionNumber As Long
        Dim shtData As Worksheet
        Dim shtTest As Worksheet
        Dim maxData As Long
        Dim minData As Long
        
        Set shtTest = Sheet1
        Set shtData = Sheet2
        
        maxData = shtData.Range("A2").CurrentRegion.Rows.Count - 1
        minData = 1
        
        dataNumber = shtTest.Range("A2").Value + cddirection
        If dataNumber <= maxData And dataNumber >= minData Then
            shtTest.Range("A2").Value = dataNumber
            shtTest.Range("B2").Value = shtData.Cells(dataNumber + 1, 1).Value
            For optionNumber = 1 To 4
                With CallByName(shtTest, "OptionButton" & optionNumber, VbGet)
                    .Caption = shtData.Cells(dataNumber + 1, optionNumber + 1).Value
                End With
            Next optionNumber
        End If
    End Sub
    

    CaIIByName函数

        CallByName函数可以获取或设置某个对象的属性或者子对象,也可以用来执行该对象的指定方法。与通常的点运算(.)不同的是,利用CallByName函数可以使用文本形式访问对象的属性或方法,其语法如下:

    CallByName(object, procname, calltype, [args () ] )
    • 参数object为对象变量。
    • 参数procname为object所表示的对象变量的属性名称或者方法名称。
    • 参数calltype为调用方式,即指定procname的类型,可以为VbGet(获取属性)、VbSet(对象赋值)、VbLet(属性赋值)、VbMethod(执行方法)。
    • 参数args为参数列表,当calltype所指定的调用方式需要参数时,可以在本参数位置开始以逗号(,)为分隔符依次填写各个参数。

    使用CallByName函数获取子对象

    一般地,可以使用以下表达式表示某个对象的子对象:

    对象.子对象

    该子对象同样可以通过CallByName函数获取,相当于其父对象的一个属性,只需将子对象的名称传递给procname参数,然后calltype参数设置为VbGet,即可使CallByName函数返回该子对象。

    使用CaIIByName函数批量修改对象的属性

    由于使用CallByName函数可以以文本的形式访问对象,因而可以使用其批量修改对象的属性。使用该方法修改属性必须保证所有的对象名称有规律,并且具有相同的属性。本例中,ActiveX控件插入工作表后,一般以其类型名称+顺序编号作为其默认的对象名称。由于其具有规律性,因而使用循环对其访问。
    本例中所有的OptionButton为工作表对象Sheet1的子对象,使用CallByName函数可以返回各个OptionButton对象,之后可以直接在CallByName函数中对其Caption属性进行赋值。

    灵活使用自定义过程

        本例中,“下一题”和“上一题”按钮的实质是完成同一个动作:将“题库”中的相关信息写入“考试”工作表中。其唯一的区别在于,单击“下一题”按钮时,选取的题目的题号为当前题号+1,而上一题则是选取当前题号-1。只要获取新的题号,其取题目的代码是一致的。
        为了便于调用,本例中自定义了一个枚举,分别以-1和1表示“上一题”和“下一题”的题号的变化量,并在自定义过程中使用了该枚举类型的参数作为选题的标志。对于程序,只需获取当前的题号,并加上参数传递过来的值,即可得到新的题号,从而进行题目信息的获取。
        在大多数使用各类控件的程序中,总是调用自定义过程实现主要的功能,而利用各种事件将逻辑串起来。一般来讲,自定义函数和自定义过程总是可以使用自定义的枚举作为参数的类型,从而方便调用。

    展开全文
  • ActiveX控件是自动化组件对象,该对象可通过嵌入的方式添加至其他应用程序中,因而可以在Excel中添加ActiveX控件工作表中。 一般地,ActiveX控件只要在系统中注册后,就可供Excel使用。使用方法为:在“开发工具...

    目录

    ActiveX控件

    Excel中常用的ActiveX控件

    编辑ActiveX控件

    通过代码访问ActiveX控件

    工作表中窗体(表单)控件和ActiveX控件的区别


    ActiveX控件

        ActiveX控件是自动化组件对象,该对象可通过嵌入的方式添加至其他应用程序中,因而可以在Excel中添加ActiveX控件至工作表中。
        一般地,ActiveX控件只要在系统中注册后,就可供Excel使用。使用方法为:在“开发工具”选项卡中“控件”组的“插入”按钮中单击需要插入的控件,然后在工作表中单击鼠标左键,并向右下角移动鼠标形成一个矩形框,再释放鼠标左键,即可添加一个与矩形框大小相同的ActiveX控件。

    Excel中常用的ActiveX控件

        控件名称

        CodeName

        说明/用途

    按钮

    CommandButton

    用以触发某个程序的执行

    标签

    Label

    显示指定的文本,也可以当作按钮触发程序

    文本框

    TextBox

    显示指定的文本,可以进行输入

    列表框

    ListBox

    以列表形式显示各个选项

    复合框/组合框

    ComboBox

    可输入的并带有列表的下拉框

    复选框

    CheckBox

    可以切换选择及未选择两种状态

    单选框

    OptionButton

    在同一组中仅允许一个单选框被选中

    滚动条

    ScrollBar

    在指定的数字范围内变化的滚动条

    微调按钮

    SpinButtou

    成对的两个按钮,可调节数值,每次变化默认为1

    图像

    Image

    可以导入图片等

    切换按钮

    ToggleButton

    在按下及弹起两个状态中切换的按钮

    日期选择控件

    DTPicker

    组合框与日历控件的结合

    编辑ActiveX控件

        当插入ActiveX控件后,Excel即进入设计模式。在该模式下,“开发工具”选项卡下“控件”组的“设计模式”呈被按下的状态。

         在设计模式下,开发者可以对ActiveX控件的大小和位置进行手动调整,也可以手动修改控件的属性。

    通过代码访问ActiveX控件

        添加至工作表中的ActiveX控件可以直接作为工作表的子对象进行访问,如在工作表Sheet1中添加了一个按钮控件CornmandButton1,则可以直接使用以下语句访问该按钮:

    Sheet1.CommandButton1

    在该工作表的代码窗口中写入代码时,可以直接使用控件的名称进行访问。

    工作表中窗体(表单)控件和ActiveX控件的区别

        在Excel工作表中内置了一些控件,称为窗体控件或表单控件。与ActiveX控件不同的是,由于可供修改的属性以及事件较少,自由度不如ActiveX控件,因而功能不如ActiveX控件强大。但是此类控件使用起来更方便,当需求不高的时候可以直接使用此类控件。
     

    展开全文
  • 步骤1 在工作表中插入一个按钮,将其命名为CommandButton1,Caption属性为“显示窗体”。 步骤2 按组合键【Alt+F11】打开VBE。 步骤3 选择菜单“插入”→“用户窗体”。 步骤4 在“工程资源管理器”中双击之前插入...

    目录

    步骤

    控件工具栏

    控件的顺序

    控件的组合


    步骤

    步骤1  在工作表中插入一个按钮,将其命名为CommandButton1,Caption属性为“显示窗体”。
    步骤2  按组合键【Alt+F11】打开VBE。
    步骤3  选择菜单“插入”→“用户窗体”。
    步骤4  在“工程资源管理器”中双击之前插入的窗体,在“控件”工具箱中将CommandButton控件拖入窗体中,并调整大小和位置,如所图所示。

    步骤5  在“工程资源管理器”中右键单击之前插入的窗体,选择“查看代码”,如图所示,然后在代码编辑窗口中输入以下代码。 

    Option Explicit
    
    Private Sub CommandButton1_Click()
        '将活动单元格的填充色改为红色
        ActiveCell.Interior.Color = vbRed
    End Sub

     步骤6  在“工程资源管理器”中双击“Sheet1”工作表,并输入以下代码。

    Option Explicit
    
    Private Sub CommandButton1_Click()
        UserForm1.Show
    End Sub
    

    步骤7  返回工作表界面,退出设计模式,然后单击按钮“显示窗体”,即可弹出窗体。单击窗体中的按钮,即可将当前活动单元格的填充色改为红色,如图所示。

    控件工具栏

        在窗体的控件工具栏中,可以找到各种常用的ActiveX控件,这些控件与工作表中的ActiveX控件相同,可以随意添加至窗体中。当用户需要在该工具栏中添加更多的ActiveX控件时,可以按照右键单击该工具栏→添加控件→选择控件→确定的步骤进行,如图所示。

     当需要将控件工具栏中的控件添加至窗体时,可以使用以下两种方法。

    • 鼠标左键单击工具栏中的控件并按住不放,同时移动鼠标将控件拖曳至窗体中,然后释放鼠标左键。
    • 鼠标左键单击工具栏中的控件,在窗体中使用鼠标左键画出一个矩形框。

    当控件添加至窗体后,可以任意移动或者改变大小,如图所示。

    窗体中控件的使用方法和常用属性与工作表中的ActiveX控件几乎相同,其事件也几乎相同,只是个别的名称发生了变化,如:

    • 窗体中的控件添加了Enter与Exit事件,工作表ActiveX控件与之对应的是GetFocus和LostFocus事件。
    • 窗体中的控件添加了SetFocus方法,工作表ActiveX控件与该方法对应的是Activate。

    控件的顺序

        在窗体运行时,用户可以通过按【Tab】键在各个控件中循环切换激活状态。一般情况下,各个控件的顺序是由控件添加的先后顺序决定的。开发者若需要改变该顺序,可以在窗体中右键单击鼠标后参照图所示的步骤进行。

    控件的组合

      某些控件是以组为单位使用的,如“选项按钮”OptionButton控件,一般在窗体中插入多个“选项按钮”后,只能同时仅有一个按钮被选中。但通常情况下,“选项按钮”在不同组中都应有一个能够被选中,此时应该使用“框架”控件对窗体中的各个控件进行分组,可以参考以下步骤插入两组各有两个“选项按钮”实现在不同的组中各自选中一个“选项按钮”。
    (1)在窗体插入两个“框架”控件Frame。
    (2)选中其中一个“框架”控件,在“控件工具箱”中选中“选项按钮”,在窗体的框架控件上画一个“选项按钮”控件,并以此方法在该“框架”控件中插入另一个选项按钮,如图所示。

     (3)选中另一个“框架”控件,在“控件工具箱”中选中“选项按钮”,在窗体的框架控件上画一个“选项按钮”控件,并以此方法在该“框架”控件中插入另一个选项按钮。
    (4)运行并显示窗体,可以实现在两个“框架”中的“选项按钮”各自被选中,如图所示。

     

    展开全文
  • 表单控件VBA

    2021-06-12 18:48:22
    注意,不是activex控件,是#用VBA遍历CheckBox#可以先遍历所有shaps,再根据名称判断是否复选框。 Sub 遍历CheckBox() Dim shp As Shape, i i = 1 F如图,我希望在选1按钮的时候cellS(1,1)显示1 在选2按钮的时候...

    [VBA]遍历表中所有表单控件,并将控件的文本复制到如题,请问可以实现吗?通过VBA编程方法。注意,不是activex控件,是表#用VBA遍历CheckBox#可以先遍历所有shaps,再根据名称判断是否复选框。 Sub 遍历CheckBox() Dim shp As Shape, i i = 1 F

    如图,我希望在选1按钮的时候cellS(1,1)显示1 在选2按钮的时候cells(Private Sub OptionButton1_Click()[a1] = 1End SubPrivate Sub OptionButton2_Click()[a1] = 2End Sub

    Excel 表单控件和ACTIVEX控件有什么区别

    890f3e02e074bc92dd81910f4f8c1de9.png

    表单控件 表单控件是与早期版本的 Excel(从 Excel 5.0 版开始)兼容的原始控件。表单控件还适于在 XLM 宏工作表中使用。 1)如果希望在不使用 VBA 代码的情况下轻松引用单元格数据并与其进行交互。

    在使用Excel(包括其他Office组件)的VBA开发功能时,可以插入两种类型的控件,一种是表单控件(在早期版本中也称为窗体控件,英文Form Controls),另一种是ActiveX控件。 前者只能在工作表中添加和使用(虽然它名为Form Controls。

    表单控件(EXCEL窗体)的列表框添加数据源(VBA)

    表单控件(EXCEL窗体)的列表框添加数据源(VBA) 先建立如图模型  代码1 Subsetdata()DimshpAsShapeSetshp=ActiveSheet.Shapes(1)shp.ControlFormat.ListFillRange="A1:A6"EndSub 运行结果:  代码2 S

    获取以下值: ① 获取单选框的选择状态 ② 复选框的选择状态 ③ 列表框中的单选框的选择状态:optionbutton1.value 复选框的选择状态:checkbox1.value value值有0、

    2不等,但都可用true或false表示,推荐用数字,true或false在某些特定情况显示会有问题 列表框的元素:列表框就是数组。

    Excel如何查看和修改表单控件的属性?(以选项按钮...Excel如何查看表单控件的属性?activex控件的属性可以查看和修改,但是在 菜单栏 空白处>右键>控件工具箱(选中) 控件工具箱 1 设计模式 2属性 3查看代码 希望能帮到你。

    VBA每个控件都有很多属性,虽然可以按照分类排序,但由于没有中文解释,有些属性也不了解如何使用,下面是一些控件属性的解释,不全,可供参考:常规AutoLoad (Excel)打开工作簿时是否加载控件。(如果是 ActiveX 控件,则忽略。

    vba 中的复选框怎么使用,是表格中的表单,不是窗表格中的复选框,使用OleObjects集合进行调用,方法如下: Sub xx() Sheet2.OLEObjects("Checkbox1").Object.Value = True 'OLEObjects("Checkbox1").Object就表示CheckBox1对象 '.Value表示复选框选中状态 '=True表示选中 ' Sheet2.OLEObjects(

    展开全文
  • 题 如图所示,该为某公司订单记录,其中... 工作年限 入院时间 入院年限 职务 等级 身份证号 党员团员 1 张201101 后勤科 中级 干部 主治医师 医生 男 1954-01-04
  • VBA窗体和控件初接触(2):

    千次阅读 2020-03-10 09:04:52
    我学到现在才发现控件分类不是我开始以为的 表单控件 传统表单控件 ActiveX控件(activeX并不能直接用到窗体,和窗体的事件也略有不同,比如getfoucs,窗体里是enter等) 窗体 窗体控件 代码设置优先级更高,...
  • 目录 题 码 动态属性 IRibbonUI对象和Invalidate方法 ... 本例实质上是需要按钮(button控件的label属性能够根据当前工作簿是否含有“目录”工作表而动态显示不同的内容。因而使用其动态属性getLa...
  • 引言 我们还是要回顾下我们要干什么?我们的目标是做一个具有查询及显示查询结果的工具。上一章介绍了窗体及其属性、事件、方法等,这个东西只能算是画个查询条件的框框...控件其实也是窗体,是上篇中的窗体的儿子...
  • 窗体控件名加参数等 Controls("Label" & (41 + I)).Caption = "中了第" & ws1.Range("g23") & "个" & Chr(10) & ws1.Range(" k23") & "*" & ws1.Range(" m23") Controls("Label" &...
  • [VBA] excel vba控件常规使用

    万次阅读 2008-07-30 20:10:00
    [VBA] vba控件常规使用UserForm 基础如何显示 UserForm以下是用于显示 UserForm 编程语法是: UserFormName .Show要显示名为 UserForm1, UserForm 使用以下代码: UserForm1.Show不显示它实际上还能加载 UserForm ...
  • 工作表中通过类模块来操作checkbox控件,可自己修改为optionbutton控件
  • 然而在excel中, 随着工作表数量的增加, 工作表的浏览和定位就会变得麻烦起来, 于是我便希望能找到一个方法, 可以更容易, 更直观(一眼看到更多的sheet名)的导航sheet.   为此, 我google了一下,解决方案有下面两个...
  • VBA从入门到精通(控件+类模块+ADO+SQL数据库) Office培训讲...
  • VBA_动态新建sheet及控件

    千次阅读 2010-07-11 12:58:00
    Option Explicit 'Analyse Sub CreateSheets()  Dim ArrPersons() As String  Dim IPerCount As Integer  Dim i As Integer, WsThis As Worksheet  Dim StrSheetName As ...
  • VBA编程常用词汇英汉对照

    千次阅读 2019-10-03 16:22:48
    20‑1到 20‑8是VBA编程中使用频率最高的英文单词,按字母排序。词性列中,a表示形容词,n表示名词,v表示动词,p表示介词以及其他词性。 20‑1 VBA编程常用词汇 单词 中文 词性 ...
  • 类是VBA的魂,如果理解了类的知识,那么很多VBA的理论会很容易理解。所以我们要理解类,在理解的基础上掌握它的应用。今日课题需求:在做选择题时1)对于单选这种类型,一共多个答案,如果选择了一个那么其他的将不被...
  • 自动生成VBA窗体菜单

    2010-08-16 15:23:46
    Set cmb = Application.CommandBars("CELL").Controls("另存为 ").Controls("OFFICE 2007工作表 ") AddCustomCommandBarPopup3 cmb, "office 2007启用宏的工作表 ", "FF", False, True, 0, "" Set cmb = ...
  • Vba菜鸟教程

    万次阅读 多人点赞 2020-05-02 18:21:15
    文章目录Vba菜鸟教程编辑器宏vba基本语法运算符变量语句简写语句sub语句调用语句退出语句分支语句循环语句判断语句公式与函数在单元格输入公式利用单元格公式返回值调用工作表函数利用vba函数自定义函数操作对象操作...
  • VBA精彩代码分享-1

    2019-05-02 18:09:00
    第一段的功能是修改VBA控件中的文本框控件,使其右键可以选择粘贴、复制、剪切等: Option Explicit ' Required API declarations Private Declare Function CreatePopupMenu Lib "user32" () A...
  • VBA综合应用——解压并剔除Excel敏感数据 作者:AntoniotheFuture 关键词:VBA,Excel自动化,办公自动化 开发平台:Excel2010 平台版本上限:2010 平台版本下限:尚未发现。 开发语言:VBA 简介:公司里有些...
  • 王佩丰VBA学习笔记

    千次阅读 2020-11-02 17:26:43
    VBA笔记 王佩丰VBA学习笔记 (按照课程分类) for循环 for i = a to b next (先 dim) Sub gzt() Rows(“1:1”).Select Dim i As Integer For i = 1 To 10 Selection.Copy ActiveCell.Offset(2, 0).Rows(“1:1”)....
  • VBA-Visual Basic工作伙伴

    2020-09-13 08:18:10
    The Developer tab takes you into the part of the application where you can create VBA programs so the first thing you need to do is change that option. Simply go to the File tab, Options, Customize ...
  • # Excel VBA编程常用语句300句 * 本文转自:**http://blog.sina.com.cn/codelee** 博主:**代码农夫** 感谢大佬总结并分享出来~ ************** # * VBA 语句集 * * (第 1 辑) * ************** ***************...
  • VBA编程常用语句(转载) 1、Option Explicit '强制对模块内所有变量进行声明 Option Private Module '标记模块为私有,仅对同一工程中其它模块有用,在宏对话框中不显示 Option Compare Text '字符串不区分大小写 ...
  • 它也给我带来的很多乐趣,很多工作机会。让我给你介绍一下它。 什么是VBA 百度百科 Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动...
  • js操作vba常用语句

    千次阅读 2014-04-28 16:54:54
    (1)OptionExplicit ' 强制对模块内所有变量进行声明   OptionPrivateModule ' 标记模块为私有,仅对同一工程中其它模块有用,在宏对话框中不显示   OptionCompareText ' 字符串不区分大小写   OptionBase1 ...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 189
精华内容 75
关键字:

vba工作表optionbutton控件值

友情链接: conter_display.rar