Tag: userform

Excel – 根据单元格内容设置Userformcheckbox的值

我正在开发一个用户表单,其中的一个部分包含三个指向世界不同地方的checkbox。 根据这些组合,在文本C9中input一个文本值。 我想要checkbox反映当用户返回到用户窗体时已经在单元格中的内容。 我已经能够为用户窗体(选项button,文本框,combobox)中的每个其他项目执行此操作,但是我的checkbox根本没有响应,只要在用户窗体出现时就取消选中,而不考虑C9的值。 以下代码位于userform_intialize模块中。 有任何想法吗? If wsM.Range("C9").Value = "EU-5" Then NABox.Value = False And EUBox.Value = True And RoWBox.Value = False ElseIf wsM.Range("C9").Value = "EU-5 & RoW" Then NABox.Value = False And EUBox.Value = True And RoWBox.Value = True ElseIf Sheets("Menu").Range("C9").Value = "NA & EU-5" Then NABox.Value = True And EUBox.Value = True And […]

自定义VBA UserForm窗体内的热键

我想让我的用户窗体closures(或其他命令),而不使用加速键。 例如,当用户按F4时从Excel中打开下面的表单。 我也想用F4来closures(Unload Me)。 这是我目前正在使用的,虽然它似乎不必要的大: Private Sub TextBoxA_KeyDown(ByVal keycode As MSForms.ReturnInteger, ByVal Shift As Integer) moveme Val(keycode) End Sub Private Sub TextBoxB_KeyDown(ByVal keycode As MSForms.ReturnInteger, ByVal Shift As Integer) moveme Val(keycode) End Sub Private Sub TextBoxC_KeyDown(ByVal keycode As MSForms.ReturnInteger, ByVal Shift As Integer) moveme Val(keycode) End Sub Private Sub TextBoxD_KeyDown(ByVal keycode As MSForms.ReturnInteger, ByVal Shift […]

将vbCrLf应用于文本框的内容

Excel vba项目中有一个用户表单。 在devise时它是空的。 在表单初始化事件我有以下代码: Private Sub UserForm_Initialize() txtSQL.value = _ "SELECT MyName = ""ColY"" " & vbCrLf & _ "FROM SomeTable " & vbCrLf & _ "GROUP BY Customer " & vbCrLf & _ "ORDER BY Customer DESC" End Sub 我希望在文本框中有4行独立的文本,但是有以下几点: 我使用错误的控制? 还是我以错误的方式使用正确的控制?

如何解决types不匹配错误?

嗨,我有以下代码: Private Sub Search_Click() Dim Name As String Dim f As Range Dim r As Long Dim ws As Worksheet Dim s As Integer Dim FirstAddress As String Dim str() As String Name = surname.Value With ws Set f = Range("A:A").Find(what:=Name, LookIn:=xlValues) If Not f Is Nothing Then With Me firstname.Value = f.Offset(0, 1).Value tod.Value […]

VBAdynamiccheckbox定位

我有一个Excel VBA用户表单,我试图根据给定字典中的项目数来添加一些checkbox。 这个工作,但我的每个checkbox被添加到左上angular,在彼此的顶部。 我怎样才能把它们放在最前面? 这是我的相关代码: With CreateObject("Scripting.Dictionary") 'Variable Checkboxes Dim i As Long Dim chkBox As MSForms.CheckBox For i = 1 To .count – 1 Set chkBox = Me.Controls.Add("Forms.Checkbox.1", "Checkbox" & i) chkBox.Caption = .Keys()(i) chkBox.VALUE = False Next i

问题与删除用户窗体中dynamic创build的文本框

我的问题涉及在我的用户表单上dynamic删除文本框。 在用户窗体上有一个旋转button,用户可以根据自己的判断来创build文本框。 当我向上旋转旋钮时,它会创build文本框,达到我设置的最大量。 但是,当我向后旋转button,它只会删除最近创build的文本框,不会再删除。 创build框的代码如下 Private Sub AgendaFromBox_Change() Dim BoxValue As Integer BoxValue = AgendaFromBox.Value If BoxValue > 10 Then AgendaFromBox.Value = 10 Exit Sub End If If BoxValue = 0 Then Exit Sub End If Dim NewBox As Control Dim NewLabel As Control For i = 1 To BoxValue Set NewBox = Me.Controls.Add("Forms.Textbox.1") Set […]

尝试在活动工作簿中引用另一个工作表

我正在尝试使单击命令button时激活另一个工作表,但我留在同一个活动工作簿: Sub Submit_Warranty() 'Set warranty data worksheet as active page Sheets("Sheet2").Activate 'Show the submit warranty user form Warranty_Input.Show End Sub 我不断收到“下标超出范围”的错误。 有任何想法吗?

VBA Excel:参数不可选

vba非常新,而且我正在用一段代码来解决一些问题。 实质上,我试图从用户表单中的用户select的项目执行不同的工作表函数。 Private Sub cmdRunStat_Click() Dim averageValue As Single Dim sdValue As Single Dim maxValue As Variant Dim minValue As Single Dim modeValue As Single Dim UserRange As String, sheetName As String Set UserRange = ListBox1.Selected = True If optAverage.Value = True Then averageValue = WorksheetFunction.Average(UserRange) MsgBox "The average of the selected data is " […]

如何在excel vba中卸载多个用户表单?

我有一个Excel工作簿中的相当多的用户forms。 当用户在表格之间移动时,它们被隐藏起来。 我可以使用什么代码一次性卸载所有的用户表单? Private Sub CommandButton3_Click() Unload UserForm15 Unload UserForm14 Unload UserForm13 Unload UserForm12 Unload UserForm11 Unload UserForm10 Unload UserForm9 Unload UserForm8 Unload UserForm7 Unload UserForm6 Unload UserForm5 Unload UserForm4 Unload userform3 Unload UserForm2 Unload UserForm1 End Sub 有没有更短的代码来做到这一点,或者我回答了我自己的问题?

Excel-VBA MultiPage:在运行时移动/重新sorting/索引页面?

我正在使用一个小的Excel-VBAgraphics用户界面/窗体来读取/写入.ini文件的数据。 用户窗体有一个多页,用户在运行时创build页面,每个页面将代表一个ini部分。 此外,这些部分也在主要部分进行索引以便进一步处理:此时,我循环访问MultiPage页面以创build此索引。 问题是,用户需要能够改变这个索引的顺序。 现在,是否有可能在运行时移动多页中的页面? 我正在想一些事情的效果 Me.MultiPage1.Pages(i).Index = i + 1 但显然这是行不通的。 或者,有没有办法我可以通过一个之前:=或任何类似于Multipage.Pages.Add解决它? 如果这些都不起作用,我想我会用MoveUp / Downbutton创build一个单独的ListBox控件。 打开任何更好的解决scheme。