鼠标单击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点击它会显示一个
UserForm,
UserForm上有一个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属性。您可以更改单元格引用以显示所需的单元格内容。