本文目录
- 用excel VBA做一个窗体,要怎么做
- Excel VBA中RefEdit的具体用法及实例
- excel vba关于动态建窗体
- excel VBA 窗体 录入
- 在excel做一个vba的窗口
- excel中vba(窗体)
- 如何在excel vba界面设计
- Excel vba 窗体 beforedragover事件怎么用
用excel VBA做一个窗体,要怎么做
在表格状态按alt+f11打开vbe器
在红色圈内点击鼠标右键,有个插入窗体,然后出现右侧的窗体,可以在上面增加控件
进行操作之类的
或者点击表格标签,鼠标右键插入,出现插入对话框,选择红色的即可
Excel VBA中RefEdit的具体用法及实例
建一个窗体,窗体上建一个refedit控件、一个按钮,将下面代码粘贴到按钮的单击事件中:PrivateSubCommandButton1_Click()str1=RefEdit1.Text’鼠标选取单元格范围,获取引用字串myrng=Right(str1,Len(str1)-InStr(str1,"!"))UnloadMeMsgBox"选定范围"&Right(str1,Len(str1)-InStr(str1,"!"))&"数据总和为:"&Application.WorksheetFunction.Sum(Range(myrng))EndSub在表格中输入一些数字,此示例,通过refedit控件用鼠标在表格中选取范围,然后将选取范围的单元格引用字串传递给sum函数进行加总该范围的数据。
excel vba关于动态建窗体
Sub 创建窗体() Dim UsForm As Object Set regex = CreateObject("vbscript.regexp") regex.Global = True regex.Pattern = "\d+" pagename = Sheet1..End(xlUp).Row, 1) Set d = CreateObject("scripting.dictionary") Set d1 = CreateObject("scripting.dictionary") i = 1 For Each ke In pagename If Len(ke) 》 0 Then d(pagename(i, 1)) = "" d1(regex.Replace(ke, "")) = "" End If i = i + 1 Next Set pagename = Nothing Set UsForm = ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_MSForm)’需引用Microsoft Forms 2.0 Object Library With UsForm .Properties("Caption") = Sheet1. .Properties("Height") = 360 .Properties("Width") = 420 With .Designer Set mympage = .Controls.Add("Forms.MultiPage.1") With mympage .Top = 2 .Height = UsForm.Properties("Height") - 50 .Width = UsForm.Properties("Width") - 20 .Left = 10 .BackColor = RGB(200, 200, 200) End With For Each ke1 In d1.keys mympage.Pages.Add ke1 & "字头", ke1 & "字头" i = 1 For Each ke2 In d.keys If regex.Replace(ke2, "") = ke1 Then Set objbtn = mympage.Pages(ke1 & "字头").Controls.Add("Forms.CommandButton.1") With objbtn .Top = 20 + 22 * (i - 1) .Height = 20 .Width = 50 .Left = 18 .Caption = ke2 .BackColor = RGB(200, 200, 200) End With i = i + 1 End If Next Next mympage.Pages.Remove ("Page1") mympage.Pages.Remove ("Page2") End With End With VBA.UserForms.Add(UsForm.Name).Show ThisWorkbook.VBProject.VBComponents.Remove UsForm Set UsForm = Nothing Set regex = Nothing Set objbtn = NothingEnd Sub
excel VBA 窗体 录入
建议:
添加一个辅助数据: Cells(i, 6) = DTPicker1.Value & ComboBox2.Text & ComboBox1.Text
用作索引字段
然后在写入工作表之前,增加一个判断:
Dim rng as RangeSet rng = Columns(6).Find(DTPicker1.Value & ComboBox2.Text & ComboBox1.Text)If rng is not nothing then Msgbox "记录已存在,不能提交!" Exit subEnd If
当然,也可以用字典对象来做,更简单。
还有,那段查找B列最后一个空单元的循环可以简化为一句代码,如下:
i = Range("B65536").End(xlUp).Offset(1,0).Row
List 控件的 RowSource 属性可以和工作表单元格关联,然后仿照前面判断重复的代码,进行记录的定位,然后进行修改并保存。
在excel做一个vba的窗口
如果是打开VBA代码窗口(VBE):ALT+F11 如果是指打开excel自动运行用户设计窗体,就在thisworkbook中贴上如下代码 Private Sub Workbook_Open() UserForm1.Show End Sub
excel中vba(窗体)
如果控件绑定了数据,就不让更改。你加一个按钮手动添加一个数组Private Sub CommandButton2_Click()Dim i As SingleDim MyArray(6) For i = 0 To 5 MyArray(i) = i MyArray(i) = i + 1 MyArray(i) = i + 2 Next iListBox1.List() = MyArrayEnd Sub
如何在excel vba界面设计
方法/步骤1首先,我们需要打开一个excel表格, 打开后,点击开发工具选项,然后点击红色笔圈中的Visual Basic选项,2快捷启动方法当然我们最常用的方法还是使用组合键来开启vba窗口,同时按下alt+F11组合键即可3程序示例在打开的vba界面右击this workbook选项,依次选择,插入, 模块选项卡,在弹出如图所示窗口区域内复制一下内容:sub 百度经()msgbox "hello,百度经验"end sub4粘贴后,按下F5键,即可弹出"hello,百度经验“ 的交互式对话框。如图所示5今天就首先带大家熟悉下如何启用VBA窗口,以及做了一个非常简单的小程序,让大家对VBA有个简单的概念。
Excel vba 窗体 beforedragover事件怎么用
BeforeDragOver 事件 当拖放操作正在进行时 触发。
有多种窗体控件支持此事件,参数稍有不同。
以下是此事件的一个示例:
1、建立一个窗体,并放置两个 ListBox 控件(ListBox1 和 ListBox2)。
2、为示例方便,设置了 ListBox1 的 RowSource 属性,添加一些数据:
3、编写代码:
Private Sub ListBox2_BeforeDragOver(ByVal Cancel As _ MSForms.ReturnBoolean, ByVal Data As _ MSForms.DataObject, ByVal X As Single, _ ByVal Y As Single, ByVal DragState As Long, _ ByVal Effect As MSForms.ReturnEffect, _ ByVal Shift As Integer) Cancel = True Effect = 1End SubPrivate Sub ListBox2_BeforeDropOrPaste(ByVal _ Cancel As MSForms.ReturnBoolean, _ ByVal Action As Long, ByVal Data As _ MSForms.DataObject, ByVal X As Single, _ ByVal Y As Single, ByVal Effect As _ MSForms.ReturnEffect, ByVal Shift As Integer) Cancel = True Effect = 1 ListBox2.AddItem Data.GetText End SubPrivate Sub ListBox1_MouseMove(ByVal Button As _ Integer, ByVal Shift As Integer, ByVal X As _ Single, ByVal Y As Single) Dim MyDataObject As DataObject If Button = 1 Then Set MyDataObject = New DataObject Dim Effect As Integer MyDataObject.SetText ListBox1.Value Effect = MyDataObject.StartDrag End If End Sub
运行效果如图:
在左边的 ListBox1 某条目上,按下鼠标左键,并拖动到右边的 ListBox2 中: