相关文章推荐
正直的芹菜  ·  wps vba6.3 ...·  1 周前    · 
霸气的烈马  ·  C ...·  1 年前    · 

鼠标单击CommandButton1出现如下窗口,这是未对窗口进行任何代码编写的效果。
在这里插入图片描述
(2)、在用户窗体中编写代码,打开编写界面
在这里插入图片描述
两个主要函数

Private Sub UserForm_Initialize()
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
End Sub

UserForm_Initialize是窗体初始化函数,对窗体的高度宽度等一系列初始化操作区域。只要使用UserForm1.Show就会调用这一函数。
UserForm_QueryClose是窗体点右上角那个x之后,将调用该函数。

(3)、实际应用
将实现的功能:
读取所有sheet的名字
显示在窗体上
通过在窗体上选择想要的sheet的名字,输出打印到sheet1的单元格A1中。
将按钮修改名称为“确定”,点击确定即为确定选择内容,点击右上角的x,即为放弃修改。
最终效果:
在这里插入图片描述

Private Sub 确定_Click()
    Sheet1.Range("A1:Z1").ClearContents
    Call Process
    Unload UserForm1
End Sub
Private Sub Process()
   Dim TNum As Integer
   Dim flag As Integer
   flag = 0
   TNum = 0
   On Error Resume Next
     For i = 0 To UserForm1.Controls.Count - 1
        If UserForm1.Controls(i) = True Then
            Sheet1.Cells(1, 1) = Sheet1.Cells(1, 1) & " " & UserForm1.Controls(i).Caption
        End If
End Sub
Private Sub UserForm_Initialize()
    Dim sheetNameArr() As String
    Dim sheetnum As Integer
    For Each sht In Worksheets
        sheetnum = sheetnum + 1
    ReDim sheetNameArr(0 To sheetnum)
    sheetnum = 0
    For Each sht In Worksheets
        sheetNameArr(sheetnum) = sht.Name
        sheetnum = sheetnum + 1
    sheetnum = UBound(sheetNameArr) + 1
    'Fix是向下取整
    counts = Fix(sheetnum / 10) + 1
    '设置窗体高度和宽度
    UserForm1.Width = 150 * counts '每增加1列宽度加150。
    If sheetnum < 11 Then UserForm1.Height = 20 * sheetnum + 50
    If sheetnum > 10 Then UserForm1.Height = 250
    '设置按钮的高度宽度以及相对窗体的位置
    UserForm1.确定.Width = 100
    UserForm1.确定.Height = 25
    UserForm1.确定.Top = UserForm1.Height - 50
    UserForm1.确定.Left = (UserForm1.Width - 100) / 2
    For X = 1 To counts
        Y = 10 * X '每列显示10个控件
        If X = 1 Then '开始第1列显示
            Start = 2
            Ends = 11
        Else '换列显示
            Start = Ends + 1
            Ends = Y + 1
        End If
        If Ends > sheetnum Then '防止溢出
            Ends = sheetnum
        End If
        For i = Start To Ends '循环生成控件
           Set ChkBox = UserForm1.Controls.Add("Forms.CheckBox.1", "Chk" & Str(i))
           If i > 11 Then
               tops = 2 + 20 * (i - Y + 8) '换列后的控件高度坐标
              tops = 2 + 20 * (i - 2)
           End If
           ChkBox.Top = tops
           ChkBox.Height = 25 '控件的高度
           ChkBox.Width = 200 '控件的宽度
           ChkBox.Left = 20 + 150 * (X - 1) '220 换列后的横坐标
           ChkBox.Caption = sheetNameArr(i - 2) '控件显示的标题
           Set ChkBox = Nothing
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
End Sub

https://download.csdn.net/download/qq_39629993/12693907

1、插入一个用户窗体需要在用户窗体中加入按钮的,则需要打开“工具箱”插入控件按钮2、代码编写(1)、首先在sheet中添加一个按钮,来显示用户窗体,查看效果Private Sub CommandButton1_Click() UserForm1.ShowEnd Sub鼠标单击CommandButton1出现如下窗口,这是未对窗口进行任何代码编写的效果。(2)、在用户窗体中编写代码,打开编写界面两个主要函数Private Sub UserForm_Initialize(
实现环境:Visual Studio 2010, Excel 2010, VSTO 4.0 在文档嵌入一个Commandbutton点击它会显示一个UserFormUserForm上有一个CommandButton点击会弹出消息框然后CommandButton的Caption改变。当UserForm关闭是文档的CommandButton的Caption改变。 VB.NET: 用userform1 打开userform2 或userform3, 同时关闭userform1 然后关闭userform2 或userform3, 后回到userform1 第2次打开userform2 /3 就BUG
一种使userform的右上角关闭按钮失效的方法 Private Sub UserForm_queryclose(cancel As Integer, closemode As Integer) If closemode = 0 Then cancel = True End Sub
组合框和子窗体Excel用户窗体添加新的组合框项目 (Add New ComboBox Items in Excel UserForm)If you want to enter data in an Excel worksheet, while keeping the data sheet hidden, you can create an Excel UserForm. 如果要在Exce...
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) 这个事件是在用户窗体关闭之前发生。 第一个参数Cancel :默认是0,除了0之外的任何数都会停止QueryClose事件; 第二个参数CloseMode:有以下四个参数。这个参数的意思是关闭这个程序的方式有哪些,比如说用户点了右上角的X,或者..
您好!以下是实现VBA代码,以显示Sheet1单元格内容在窗体文本框: 首先,您需要在窗体上创建一个文本框。在窗体设计器,双击工具箱的“文本框”控件并将其拖动到窗体上。然后右键单击文本框,选择“属性”窗口。在属性窗口,找到“名称”属性并为文本框命名,例如“TextBox1”。 接下来,打开VBA编辑器。可以通过按下Alt+F11键或在开发者选项卡单击“Visual Basic”按钮来打开VBA编辑器。 在VBA编辑器选择窗体对象并打开其“代码”视图。在代码视图,找到窗体的“Load”事件处理程序,并将以下代码添加到该处理程序: Private Sub UserForm_Initialize() TextBox1.Value = Sheets("Sheet1").Range("A1").Value End Sub 在上面的代码,我们将Sheet1单元格A1的值赋值给名为“TextBox1”的文本框的Value属性。您可以更改单元格引用以显示所需的单元格内容。