Tag: userform

使用vba在运行时添加多个标签和文本框到Excel用户窗体中

我正在用Excel VBA创build一个库存pipe理工具。 我已经创build了一些代码,用于从Internet Explorer的下拉框中收集名称列表,并将其放入数组中。 我需要做的是类似vba的东西在userform中dynamic地创build几个文本框combobox ,但我会dynamic地添加用户名和文本框的标签为每个人将接收的FLN的数量。 这些会进入我已经创build的预定义的用户窗体。 根据上面的代码示例,我意识到我不能使用.Name = "Textbox" & i重命名下一个标签或文本框。 i必须等同于一个不断变化的名单,所以不能一成不变。 因此为什么必须有与UBound(UserArray)一样多的标签和文本框。 更新 Private Sub CreateControl() Dim newTxt As msforms.Control, newLbl Dim i As Integer, TopAmt Dim UserArray As String TopAmt = 30 For i = LBound(MyArray) + 1 To UBound(MyArray) – 1 Set newLbl = MultipleOptionForm.Controls.Add("Forms.Label.1") With newLbl .Name = "Label" & […]

Excel用户名表单呼叫checkbox的名称

我有一个表单,它在初始化时设置了一个包含内容和附带checkbox的标签列表。 我想检查单击button时的checkbox的值。 我如何参考checkbox – 我已经创build了一个数字(我的值)的checkbox。 添加checkbox的代码: Sub addLabel() Dim theCheck As Object Dim theLabel As Object Dim i As Long Dim LastRow As Integer LastRow = Worksheets("Assumptions").Cells(Rows.Count, "B").End(xlUp).Row For i = 1 To LastRow Set theLabel = UserForm1.Controls.Add("Forms.Label.1", "Assumption" & i, True) With theLabel .Name = "Assumption" & i .Caption = Worksheets("Assumptions").Range("B" & i).Value ' […]

VBA:检测Activeworkbook的变化

我有一个带有主菜单用户Userform的XLA AddInmacros。 我需要根据Activeworkbook启用/禁用此菜单用户表单上的boutons。 我的问题是,当用户更改或closuresUserform时,我不知道如何更新用户Userform 。 我有一个UserForm_Activate ,它更新UserForm_Activate 。 但是,当用户closuresActiveworkbook然后单击用户Userform时,不会触发该事件。 我需要更新用户Userform : 一旦Activeworkbook被改变或closures 或者只要用户到达用户Userform (即他可以点击任何控件之前)。 你将如何继续?

从Excel中导出数据以显示在用户窗体上

我有一个用户表单,我想从电子表格中显示数据。 电子表格是一个input界面,计算将显示在我的表格中。 我的问题是获取数据。 我已经尝试了下面的代码,但是什么hapeens只有当用户点击表单上的标签才会出现正确的数据。 我需要它来自动加载时,我加载的forms。 我哪里错了? Private Sub Label3_Click() Label3.Caption = Sheets("mysource").Range("o3") End Sub

VBA Excel:如果更改了文本框,则添加第二组命令

我正在忙于build立一个使用VBA和Excel的Shift轮换计划,在我坐在一个问题的时刻在我的Userform中,我有434个文本框给出了每个代理的轮class分配,如下所示: 现在为了得到这些颜色的改变,我在每个文本框(名字A1,A2 ….. A31,然后B1,B2 ,,,,,, B31等)中都有一个代码,代码如下: Private Sub A1_Change() If A1.Text = "A" Then A1.BackColor = &H602000 ElseIf A1.Text = "B" Then A1.BackColor = &HC07000 ElseIf A1.Text = "C" Then A1.BackColor = &HEED7BD ElseIf A1.Text = "D" Then A1.BackColor = &HF0B000 ElseIf A1.Text = "W" Then A1.BackColor = &HFF& ElseIf A1.Text = "M" Then A1.BackColor […]

如何在鼠标仍然closures时检测用户窗体上的mouse_down

当鼠标仍然closures时,我想要检测窗体上任何Frame上的mouse_down。 我知道如何做一个点击,但我想赶上mouse_up之前。 谢谢

在Excel中增加单元格行

我有一个用户窗体将提交数据从字段到列A,B和C,但我需要它下移,并填写下一个空行每次用户点击提交。 这是我到目前为止,我不知道我会怎么做,所以它会从A2 / B2 / C2到A3 / B3 / C3等。 Private Sub Submit_Click() Dim LastRow As Object Set LastRow = Sheet1.Range("a65536").End(xlUp) Sheet1.Range("A2").Value = MatchNum.Text Sheet1.Range("B2").Value = TeamNum.Text Sheet1.Range("C2").Value = AllianceTeamNum.Text MsgBox "One record written to Sheet1" End Sub 我在Visual Basic中是一个完整的初学者(大概1个小时的经验),如果解决scheme尽可能简单,那将会很好。 任何帮助将非常感激!

如何select/激活多个工作表以将Userform数据传送到单元格中?

我有UserForm中的checkbox,并select哪个checkbox被选中,我想select/激活对应于checkbox的Excel工作表。 防爆。 checkboxA,B,C被点击我想select/激活标签A,B,C,所以我可以将信息转移到这些表单。 我知道如何trasnfer数据,但我不确定如何select多个工作表给予checkbox的条件。 If A_Checkbox.value = True Then Cells(emptyRow, 1).value=NOD_Text.value 但问题是我有大约8checkbox,我不确定如何传输数据到多个工作表取决于点击checkbox… 有一个函数,我可以说:“如果任何checkbox值是真的,然后将用户表单数据转换成相应的表? 所以我用了响应代码,但我似乎无法得到它的工作? (我不是很熟悉vba ..反正…) Private Sub Add_Button_Click () Dim ctrl As Control Dim emptyRow As Long emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1 For Each ctrl In UserForm1.Controls If TypeName(ctrl) = "Checkbox" Then Transfervalues ctrl, emptyRow End If Next End Sub Function Transfervalues(cb As MSForms.CheckBox, […]

列表框中只有一个项目正在更新?

嗨,我有以下代码来search和search项目显示在列表框中。 我还有一个更新button,可以更新您在文本框中input的任何新信息。 更新框工作正常,但由于某种原因,当多个重复的项目显示在列表框中,我尝试点击第二个实例,并尝试更新,它更新原来的而不是第二个实例。 因此,第一个实例应该更新第一个实例项目,第二个应该更新第二个,但现在,第一个是更新第一个实例,第二个是更新第一个实例,第三个是更新第一个实例 – 总是更新第一个实例。 我怎样才能解决这个问题? 这是文档: https : //www.dropbox.com/s/36e9fmbf17wpa0l/example.xlsm Public Sub Search_Click() Dim Name As String Dim f As Range Dim s As Integer Dim FirstAddress As String Dim str() As String Dim ws As Worksheet Set ws = ThisWorkbook.Worksheets("Master") Name = surname.Value With ws Set f = .Range("A:A").Find(what:=Name, LookIn:=xlValues) If Not f […]

使用userformselect和删除Excel工作表

我在网上发现这个代码,它几乎是我想要的。 目前它提供了工作簿中的工作表列表(在用户表单中),然后我可以select要删除的工作表(通过checkbox),并保留未select的工作表。 我希望它的工作相反,select我想保留的工作表,并删除未选中的工作表。 Option Explicit 'thanks domenic mrexcel mvp Private Sub SubmitButton_Click() Dim MyArray() As Variant Dim i As Long Dim Cnt As Long With Me.ListBox1 Cnt = 0 For i = 0 To .ListCount – 1 If .Selected(i) Then Cnt = Cnt + 1 ReDim Preserve MyArray(1 To Cnt) MyArray(Cnt) = .List(i) End If […]