精华内容
下载资源
问答
  • 引言 本人本次实践的目标是数据查询。具体实现方式应该是: 使用窗体及其他控件做查询的条件的输入 使用excel作为查询结果的输出 从桌面上看应该是,...在VBA中也有,可以打开excel->开发工具 点开Visu...

    引言

    本人本次实践的目标是数据查询。具体实现方式应该是:

    1. 使用窗体及其他控件做查询的条件的输入
    2. 使用excel作为查询结果的输出
    3. 从桌面上看应该是,前面一个窗口输入查询条件,然后点确定,后面有个excel显示结果。
    4. 类似下图这种

        

    一、打开窗口 

    窗体俗称对话框,在可视化的面向对象的编程软件中都应该有。在VBA中也有,可以打开 excel->开发工具

    点开Visual Basic就会进入到变成界面,然后就可以插入窗体,如下图 

    二、窗体简介

     窗体,也就是窗口,或者叫对话框,是vba定义的一个对象,或者说一类对象。微软对“Microsoft 窗体”对象的介绍就是下面一幅图

    我们本节所说的”窗体“就是第二层(UserForm)。我们可以从图中看出,窗体对象,不止是指UserForm,还指其他的对象,如Controls,Font,MultiPage,等等。从面向对象的观点来说,这个图表示的应该是一个继承图。(我不是很熟,猜的) 如果上图是个继承关系图,那么我们可以得到几个结论:

    1. 他们的事件可以继承
    2. 他们的属性也可以继承
    3. 且儿子的属性和事件可能比父亲多。。。。

    三、窗体属性简介

    属性,表示这个窗体固有的特性,如基本的:长宽高,位置,颜色等;特殊的:如字体大小啊,有无滚动条啊等等

    所以分下类:

    • 基础属性:外观,位置,字体
    名称窗体名称该窗体的标识可能是唯一标识

    BackColor

    背景色  

    BorderColor

    边框颜色 只有BorderStyle为1时,这个才有效

    BorderStyle

    边框类型(两种)

    0 fmBorderStyleNone

    fmBorderStyleSingle

     

    Caption

    窗体左上角显示的名字  

    Height

    窗体显示位置-高  

    Width

    窗体显示位置-宽  

     

     

     

     

     

     

     

     

    •  行为属性

    Cycle

    tab顺序指定控件接收焦点的顺序

    0 fmCycleAllForms

    2 fmCycleCurrentForm

    选0时,使用tab键,会遍历所有的该窗体范围内所有的控件;选1时,使用tab键,只会遍历某一窗体范围内的控件,tab不会跳出范围,到最后一个控件后会在回到该窗体范围的第一个控件
    showmodal窗口是否锁死(这个词合适)

    true

    false

    选true叫模态,false叫非模态

    模态下,如果这个窗口是激活的,其他窗体或窗口则不能被选中。非模态,反之。

     

     

     

     

     

     

    • 滚动条

    ScrollBars

    滚动条

    0 fmScrollBarsNone

    1 fmScrollBarsHorizontal

    2 fmScrollBarsVertical

    3 fmScrollBarsBoth

    0 无

    1 水平

    2 垂直

    3 全部

    ScrollHeight

    ScrollTop

    滚动条高height有值,top才填值只有当ScrollHeight值大于窗体本身的height时,滚动条才会显示。这个时候Top表示滚动条离顶部的距离

    ScrollWidth

    ScrollLeft

    滚动条宽width有值,left才能填值只有当ScrollWidth值大于,窗体本身的Width时,滚动条才会显示。这个时候left表示滚动条离左侧的距离

     

     

     

     

     

     

     

     

     四、窗体事件、方法简介

    •  常用事件

    Initialize

    就是在初始化窗口时,要对窗口干的事情,比如给窗口属性赋值,给窗体内包含的控件赋初始值。

    Click

    点击窗体时,会干的事情,比如隐藏窗体等等

    Terminate

    关闭窗体是要干的事情,比如保存文件,关闭excel等

    • 怎么弄出来事件呢?

    先在左边选中窗口(对象),右边基本上都是事件。。。每个对象能响应的事件可能是不一样多的

    • 常用方法

    move,copy等等呢

    • 怎么弄出来方法呢?

    跟你写代码一样,写出这个对象在.一下,后面跟的就是方法和属性

    一般黑色表示属性,绿色标识方法。

    五、Initalize 、click事件示例

    下列示例假设程序中已有两个窗体UserForms。在 UserForm1 的Initalize事件中加载 UserForm2 ,并将其显示出来。当用户单击 UserForm2 时,就会将其隐含起来,而 UserForm1 将会出现。而当用户单击 UserForm1 时,UserForm2 便会再次出现。

    '这是 UserForm1 的 Initialize 事件过程
    Private Sub UserForm_Initialize()
        Load UserForm2
        UserForm2.Show
    End Sub
    '这是 UserForm2 的 Click 事件过程
    Private Sub UserForm_Click()
        UserForm2.Hide
    End Sub
    
    ' 这是 UserForm1 的 Click 事件
    Private Sub UserForm_Click()
        UserForm2.Show
    End Sub
    

     

    展开全文
  • 如何建立窗体,并通过窗体向该表内添加订单。 序号 姓名 科室 级别 身份 职称 受聘专业 性别 出生年月 年龄 参工时间 工作年限 入院时间 入院年限 职务 等级 ...

    目录

     码

    窗体控件与工作表的交互

    窗体的事件

    窗体中ControIs集合访问控件

    控件的排列

    使用控件数组进行赋值


    如图所示,该表为某公司订单记录表,其中所有的列都是必填的,订单编号为自动生成的序列号。如何建立窗体,并通过窗体向该表内添加订单。

    编号客户名称订单日期需求日期型号数量
    1上海依柯塞尔有限公司2012/1/12012/1/8A112
    2上海依柯塞尔有限公司2012/1/22012/1/9A213
    3上海依柯塞尔有限公司2012/1/32012/1/10A314
    4上海依柯塞尔有限公司2012/1/42012/1/11A415
    5上海依柯塞尔有限公司2012/1/52012/1/12A516
    6上海依柯塞尔有限公司2012/1/62012/1/13A617
    7上海依柯塞尔有限公司2012/1/72012/1/14A718
    8上海依柯塞尔有限公司2012/1/72012/1/14A718

     码

        创建一个窗体,并在窗体中添加与工作表所需填写的数据列数相等的文本框与标签控件,然后添加一个按钮作为“保存”按钮。在“保存”按钮中添加Click事件,逐个读取文本框的Value属性,将其赋值给工作表中的各列。

    步骤1  按组合键【Alt+F11】打开VBE。
    步骤2  选择菜单“插入”→“用户窗体”,并在窗体中添加5个Label控件和5个TextBox控件,以及1个CommandButton控件。
    步骤3  在“工程资源管理器”中右键单击之前插入的窗体,选择“查看代码”,然后在代码编辑框中输入以下代码。

    Option Explicit
    '窗体初始化事件
    Private Sub UserForm_Initialize()
        Dim ctlIndex As Integer
        With Me
            .Caption = "数据录入"
            .CommandButton1.Caption = "录入"
            
            For ctlIndex = 1 To 5
                'label控件
                With .Controls("Label" & ctlIndex)
                    .Left = 22
                    .Top = 22 * (ctlIndex - 1) + 12
                    .Height = 18
                    .Width = 50
                    .Caption = Sheet1.Cells(1, ctlIndex + 1).Value
                End With
                
                'textbox控件
                With .Controls("TextBox" & ctlIndex)
                    .Left = 80
                    .Top = 22 * (ctlIndex - 1) + 12
                    .Height = 18
                    .Width = 100
                End With
            Next ctlIndex
        End With
    End Sub
    
    '按钮事件
    Private Sub CommandButton1_Click()
        Dim rowNew As Long
        Dim ctlIndex As Integer
        With Sheet1
            '获取添加新数据的行号
            rowNew = .Columns.Find("*", .Range("A1"), SearchDirection:=xlPrevious).Row + 1
            '填写序号
            .Cells(rowNew, 1).Value = rowNew - 1
            '遍历数据列和TextBox控件
            For ctlIndex = 1 To 5
                .Cells(rowNew, ctlIndex + 1).Value = Me.Controls("Textbox" & ctlIndex).Text
            Next ctlIndex
        End With
    End Sub
    
    

    步骤4  返回工作表界面,添加一个ActiveX按钮控件“显示窗体”,并为其添加单击事件代码如下,然后退出“设计模式”。

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

    步骤5 单击“显示窗体”按钮,在窗体的文本框中输入内容后,单击“录入”按钮,即可将窗体中的内容写入工作表中,如图。

    窗体控件与工作表的交互

            窗体控件与工作表是可以进行交互的。开发者可以通过窗体控件的属性,方便地读取其中所需的值,然后赋值给工作表中的单元格或者任何希望赋值的对象;也可以将其他对象中所需传递的值赋值给工作表中的单元格。
            本例中,由于使用可以输入字符的TextBox控件,可以通过其Text属性或者Value属性获取在文本框中的内容。为了便于赋值,一般可以将TextBox控件取名为TextBoxN的形式,其中N表示该文本框相应的数据在工作表中的列。因而,可以通过循环进行批量赋值。

    窗体的事件

            本例中,窗体的Initialize事件中添加了读取各个数据标题的代码以赋值给Label控件,并对其中的各个控件进行了排列。该Initialize事件在窗体加载时发生,一般可以在其中进行窗体的一些初始化工作,尤其是一些排版或者标签赋值的工作。窗体还有许多非常有用的事件,见表。 

        事  件

        说  明

    Click()

      单击窗体区域(标题除外)事件

    DblClick(ByVal Cancel As MSForms.ReturnBoolean)

      双击窗体区域(标题除外)事件

    Activate()

      激活事件。当窗体获取焦点后被触发,类似于工作表的Activate事件

    Deactivate()

      失去激活状态事件。当窗体失去焦点后被触发,类似于工作表的Deacitvate事件

    Initialize()

    初始化事件。当窗体装载时触发

    QueryClose(Cancel As Integer,CloseMode as Integer)

    关闭事件。在窗体关闭前而未真正关闭时触发,可以通过Cancel参数取消关闭

    Terminate()

    终止事件,当窗体卸载后触发

    KeyDown(ByVal KeyCode As MSForms.RetunInteger,ByVal Shift As lnteger)

      键盘键接下事件。当健盘键按下后触发

      KeyUp(ByVal KeyCode As MSForms.ReturnInteger,ByVal Shift As Integer)

      键盘键弹起事件。当键盘键弹起后触发

      KeyPress(ByVal KeyAscii As MSForms.Returninteger)

      敲击键盘键事件。当敲击键盘键后触发,一个完整的敲击事件包括键盘键按下和键盘键弹起

      MouseDown(Byval Button As integer, ByVal Shift As integer, ByVal X As Single,ByvaL Y As Singe)

      鼠标按下事件.当鼠标的某个键被按下时触按

      MouseUp(ByVal Button As integer, ByVal Shift As integer, ByVal X As Single,ByVaL Y As  Single)

      鼠标键弹起事件。当鼠标的某个键弹起时触发

      MouseMove(ByVal Button As integer, ByVal Shift As integer, ByVal X As Single,ByVal Y As  Single)

      鼠标移动事件。当鼠标在控件上移动时触发。

    窗体中ControIs集合访问控件

        窗体中的所有控件都属于窗体Controls集合。当需要访问各个控件时,可以使用以下表达式:

    UserForm.Controls(index)

    该表达式可以返回一个窗体控件对象,其中,UserForm为窗体对象。
    参数index可以为控件的顺序号(从0开始),或者可以是控件的名称。
          默认情况下,窗体中控件的名称与工作表中ActiveX控件的名称命名一致,采用“控件类型”+顺序号组成(从1开始)的格式。因而本例中,实际使用了控件的名称来访问各个控件,从而更改其属性。

    控件的排列

        本例演示了如何使用代码排列各个控件。当控件的位置和名称具有规律时,则该过程只需要一个简单的图示和一些简单的数学计算就能完成。如图所示的实例演示了如何计算控件的Top属性。 

    使用该方法可以准确地排列各个控件,并调整窗体的大小。

    使用控件数组进行赋值

            本例使用了循环的方式将控件的值赋值给单元格区域。当单元格连续时,实际上可以采用控件数组完成。控件数组的概念实际上是VB中的一个概念,在Excel VBA中并不具备此功能。此处所描述的控件数组实际是将数组中各个控件对象组成一个数组。当需要赋值给工作表时,则可以使用该数组进行直接赋值。但该数组的作用域必须是整个窗体(即声明在窗体中,并独立于各个过程之外)。可以参考以下窗体代码实现赋值:

    '定义控件数组
    dim arrCtl(1 to 5) As Object
    '窗体初始化事件
    Private Sub UserForm_Initialize
        '变量声明,控件序号
        Dim ctlIndex As Integer
        '操作窗体
        With Me
            ...
        
            For ctlIndex =1 To 5
                Set arrctl(cltIndex)=.Controls("TextBox" & ctlIndex)
            Next ctlIndex
        End With
    End Sub
    
    '按钮单击事件
    Private Sub Commandbutton1_Click()
        dim rowNew As Long
        ...
        Sheet1.cells(rowNew,2).resize(1,5).value=arrCtl
    End Sub

    展开全文
  • vba窗体控件大小适应

    千次阅读 2016-11-24 09:49:34
    Dim ctl As Control '窗体控件变量 ...Dim lng As New Collection '控件 大小比例参数 Private Sub UserForm_Initialize() '利用集合记录各个控件与窗体比例的参数 For Each ctl In Me.Controls pos.Add
    展开全文
  • EXCEL利用VBA自由控制图表绘图区大小

    千次阅读 2020-09-30 15:19:32
    最近写东西需要画图,画完以后突然发现绘图区域的大小是很难给弄的差不多大小的,所以在网上搜集了一些资料,写了一个VBA宏,然后通过执行宏来控制绘图区域大小。 作为新版EXCEL 2019,系统出于安全考虑,开发模式...

    用好VBA的话确实可以给你再办公室的工作效率带来质的提升。如果有人跟你说你可以用Python什么的语言处理Excel balabala的,你可以无视他了。当然python可以处理很多事情,但是EXCEL自带的作图工具也是很有优势的,对于非计算机人员来讲,EXCEL也是画图的主要途径。

    最近写东西需要画图,画完以后突然发现绘图区域的大小是很难给弄的差不多大小的,所以在网上搜集了一些资料,写了一个VBA宏,然后通过执行宏来控制绘图区域大小。

    作为新版EXCEL 2019,系统出于安全考虑,开发模式是不自动开启的,读者可以到网上搜一下如何开启宏及”开发工具“选项。

    选择第一项,打开VBA编辑器,输入以下代码:

    Sub PIC_ADJUST()
    With ActiveChart
    Selection.Height = 280
    Selection.Width = 470
    End With
    ActiveChart.PlotArea.Select
    Selection.Top = 0
    Selection.Width = 450
    Selection.Height = 250
    Selection.Left = 20
    End Sub

    这是最简单调整绘图区和图表区大小的程序,当然如果要对曲线颜色、曲线样式等更为细节的东西进行调节,VBA也是可以实现的,然后对EXCEL的对象属性了解清楚点,不断堆代码就可以了。最后关掉VBA的窗口,点第一张图的第二个图标--宏,然后选中刚才写的宏明,执行就可以了。

    希望可以帮助到大家。

    展开全文
  • excel vba 文本框 自动调整Excel文本框的大小 (Auto Resize Excel Text Boxes) If other people will be using the Excel files that you build, it might help them if you add some instructions in a Text Box....
  • Excel VBA(08)窗体和控件

    千次阅读 2020-04-29 16:36:58
    基础部分 一、窗体的基本操作 1、窗体插入 2、运行窗体 要么直接在窗体的界面点击运行按钮 要么用代码调用窗体的 show 方法 3、关闭窗体 代码关闭是 unload testform...属性窗口里面可以查看 5、位置大小 to...
  • VBA操作Excel之设置单元格属性

    千次阅读 2020-10-16 22:19:32
    VBA操作Excel简介一、VBA读写Excel文件 一、VBA读写Excel文件
  • 步骤4 在“工程资源管理器”中双击之前插入的窗体,在“控件”工具箱中将CommandButton控件拖入窗体中,并调整大小和位置,如所图所示。 步骤5 在“工程资源管理器”中右键单击之前插入的窗体,选择“查看代码”...
  • 说明:通过VBA实现真正的全屏显示excel界面。 测试代码: Private Sub CommandButton1_Click() If CommandButton1.Caption = "全屏显示" Then With Application .DisplayFullScreen = True '基本全屏 .Com...
  • 动态显示与隐藏窗体 题 如图所示,该表为某单位员工档案。现希望制作一个包含有文本框的浮动工具栏,当在文本框中输入字符并按【Enter】键后,对该表进行模糊查找,将该表中不含有该字符的所有记录隐藏。 序号 ...
  • Excel VBA编程

    万次阅读 多人点赞 2019-04-11 16:45:51
    文章目录如何创建VBAVBA语法规则声明变量给变量赋值让变量存储的数据参与运算关于声明变量的其他知识变量的作用域特殊的变量——数组声明多维数组声明动态数组其他创建数组的方法数组函数利用UBound求数组的最大索引...
  • VBA好比Excel的“遥控器”,Excel中每个菜单操作命令都对应一句VBA语句,当运行一段VBA语句时,Excel将按照相应顺序执行每句VBA语句,就像VBA在对Excel进行“遥控”一样,自动执行相应的操作。VBA的“遥控”不仅能使...
  • 前天发了一个窗体应用的简单例子,里面所举的例子也不完善,在这里重新完善一下,下图就是建的一个窗体可可实现的一些功能,之前的例子中插入行的代码是不完善的,现在重新发一下,这代码可以实现从第几行开始到第几...
  • vba控制图表,excel图表,一键完成

    千次阅读 2019-10-01 15:18:05
    来源http://club.excelhome.net/thread-1417686-1-1.html ...https://docs.microsoft.com/zh-cn/office/vba/api/excel.worksheet.chartobjects 运行宏就显示图表 Sub test() Dim ch As ChartObject, ws As W...
  • VBA代码(2011-06-24 08:56:26)转载标签 excel批量插入图片代码杂谈 在要插入图片的文件夹里新建一个Excel文件打开这个Excel文件在要插入图片的单元格里填上图片文件名不要扩展名选中要插入图片的单元格修改单元格的...
  • Excel VBA技巧实例手册

    2016-07-28 22:29:39
    第1篇 ExcelVBA基础 第1章 了解Excel宏 1.1 创建宏 技巧001显示“开发工具”选项卡 技巧002录制第一个宏 技巧003在VBE中创建宏 1.2 管理宏 技巧004运行宏 技巧005编辑宏 技巧006保存宏 技巧007设置宏的安全性 第2...
  • Excel VBA 基础教程

    2019-01-01 18:51:06
    .................................................................................................................1 1.1 VBA是什么...........................................................................
  • 引言 我们还是要回顾下我们要干什么?我们的目标是做一个具有查询及显示查询结果的工具。上一章介绍了窗体及其属性、事件、方法等,这个东西只能算是画个查询条件的框框...控件其实也是窗体,是上篇中的窗体的儿子...
  • Excel-VBA文件操作

    千次阅读 2018-10-05 02:16:29
    2、利用VBA文件处理语句来处理文件; 3、利用FileSystemObject对象来处理文件; 4、利用API函数来处理文件。 对于数据库文件,还可以利用ADO+SQL的方法操作,本文不讨论 利用Excel对象自带的方法来操作文件是最...
  • VBA 有很多用于文件操作的语句和函数,能满足绝大多数场景下的文件操作要求。本文将按操作目的一一进行介绍。
  • Excel VBA 操作 Word(入门篇)

    万次阅读 多人点赞 2018-07-03 13:14:56
    原文地址本文的对象是:有一定Excel VBA基础,对Word VBA还没有什么认识,想在Excel中通过VBA操作Word还有困难的人。 一、新建Word引用需要首先创建一个对 Word Application 对象的引用。在VBA中,工具-引用,选取...
  • excel插入图片(利用vba

    千次阅读 2019-02-19 10:00:18
    3. 单元格的大小调整为照片插入的大小 4. 复制下面vba代码,红字前的属性注意修改,红字不需删除 -------------------------------------------------复制分割线以下内容----------------------------------------...
  • OPEN() 用户主窗体名称.Show'自动打开用户窗体 Application.Visible = False '隐藏EXCEL窗口 End Sub ┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳ 17、改变窗体...
  • 前几期为大家介绍了基于VBA二次开发的CATIA软件焊点坐标数据导出应用程序编写以及焊点小球生成工具应用程序的编写,本期再来为大家介绍一下基于VBA二次开发的Excel焊点坐标数据导入与生成点数模的应用程序编写。...
  • 使用TabStrip控件,可以在应用程序中在窗口或对话框中的同一区域定义多个数据页面。 该控件包含了一个或多个Tabs集合中的Tab对象。 在设计时和运行时,都可以设置其属性来控制Tab对象的外观。在设计时,可以通过...
  • Excel VBA实用技巧大全 附书源码

    热门讨论 2010-10-08 18:59:24
    01020改变Excel窗口大小 01021改变Excel的显示位置 01022将Excel移动到屏幕以外 01023隐藏Excel 01024改变Excel的标题文字 01025删除Excel的标题文字 01026将Excel设置为全屏显示 01027在状态栏中显示信息 01028显示...
  • Excel_VBA教程

    2014-09-22 11:36:34
    38.给窗体STUDENTS AND EXAMS自定义窗体编写VBA过程 218 39.使用自定义窗体STUDENTS AND EXAMS 223 40.接下来…… 225 第十一章 自定义集合和类模块 225 1.使用集合 226 2.声明自定义集合 227 3.给自定义集合添加...
  • 虽然加了不显示警告窗口,仍然会因为密码不对被警告 希望正确的时候显示密码 后面希望每次设置密码几位。每位密码从一个库里随机,可能效率低 Sub test_wb111() Application.DisplayAlerts = False Workbooks...
  • public Form1() { InitializeComponent(); int count = ...每次使用的都是最初始的控件大小,保证准确无误。 } }   转载于:https://www.cnblogs.com/skyhorseyk/p/9264355.html

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,005
精华内容 802
关键字:

vba控制excel窗体大小

友情链接: C_interpolation.zip