Tag: userform

在VBA上创build用户窗体

我正在按照在这个网站http://www.excel-easy.com/vba/userform.html创builduserform的确切步骤。 我遵循了所有的步骤,但是我不能使它工作。 请查看错误图片。 当我粘贴这个代码。 Private Sub UserForm_Initialize() 'Empty NameTextBox NameTextBox.Value = "" 'Empty PhoneTextBox PhoneTextBox.Value = "" 'Empty CityListBox CityListBox.Clear 'Fill CityListBox With CityListBox .AddItem "San Francisco" .AddItem "Oakland" .AddItem "Richmond" End With 'Empty DinnerComboBox DinnerComboBox.Clear 'Fill DinnerComboBox With DinnerComboBox .AddItem "Italian" .AddItem "Chinese" .AddItem "Frites and Meat" End With 'Uncheck DataCheckBoxes DateCheckBox1.Value = False […]

VBAinput框条件设置不正确 – 需要结束macros

我是一个白痴,并设置一个input框无休止地循环 InputBoxx: Again = InputBox("Question?" & vbLf & "1) Answer 1" & vbLf& vbLf & "2) Answer 2" & vbLf & "3) Answer 3" & vbLf & vbLf & "Please Enter the number that corresponds to your selection") If Again <> 1 Or Again <> 2 Or Again <> 3 Then MsgBox "Hey now, that […]

禁用Excel用户窗体淡入淡出animation

在Excel 2007(和2010)中使用VBA,在显示和隐藏UserForm时,是否可以禁用标准淡入和淡出animation。 特别是对于我正在创build的用户界面来说,淡出效果太慢了。 也许user32函数AnimateWindow有一个可以作废的设置,但是我还没有弄清楚。 编辑 :这是一个美学目标; 没有性能问题。 用Me.Hide淡出,由操作系统处理,需要大约1/2秒,我想知道它是否可以被重写是瞬时的。

将validation添加到用户窗体

我在VBA是相当新的,我有一个用户窗体,用户可以从下拉列表中select一个值,从一个dynamic变化的表中获取它的值。 我需要添加validation,以便用户只能从dynamic表中select值,否则退出子。 任何帮助将不胜感激谢谢! Private Sub CommandButton1_Click() If ComboBox1.Text = "" Then MsgBox "Please Select a Version", vbOKOnly + vbExclamation, "Entry Error" Worksheets("New Revision ").Range("B6").Value = ComboBox1.Value Unload Me End Sub Private Sub UserForm_Initialize() If Range("converter").Count = 1 Then ComboBox1.Value = "01" Else ComboBox1.List = Application.Transpose(Range("converter")) End If End Sub

使用VBA调整用户窗体及其控件的大小

我正在尝试调整VBA的用户窗体和其控件,以适应不同大小的监视器。 以下是我使用的代码,基于Ron DeBruin的代码( http://www.rondebruin.nl/mac/mac022.htm )。 本质上,代码旨在将用户窗体的大小和位置与其所有控件一起缩放。 问题是我得到一个错误(如下所示)在执行 "Run-time error '-2147467259(80004005)': Method 'Properties' of object '_VBComponent' failed" 我试图用.Topreplace.Properties("Top") ,我得到的Object doesn't support this property or method错误。 德布林先生的代码使自那以来; 但是我为什么不工作而不知所措。 任何帮助肯定会感激。 Sub ChangeUserFormAndControlsSize() Dim AppUserform As Object Dim FormControl As Object Dim NameUserform As String Dim SizeCoefficient As Single SizeCoefficient = wsControls.Range("SizeCoefficient") NameUserform = "form_APScheduler" Set AppUserform = ThisWorkbook.VBProject.VBComponents(NameUserform) […]

VBA查找值,返回与查找值关联的所有唯一值(在用户表单文本框中)

我想要做的是使用VBA来解决Vlookup的限制,并创build一个用户窗体来显示客户编号的相关项目。 我有一列填充重复的值(客户号码),然后旁边的列有唯一的值(客户事件)。 这是我的桌子的一小块: CustNum CustEvent 123 Called In 123 Placed Order 345 Filed Complaint 345 Called In 345 Refund Approved 我创build了一个用户表单,允许我们的员工searchA列,并返回列B中的内容。我用vLookup做了这个,但是每个人都知道vLookup的局限性,因为它只会返回B中的第一个值, 。 我需要的是我的UserForm文本框显示前五个客户事件点击: Search: 123 Called In, Placed Order 最终这将通过我没有写权限的SQL表来运行,所以更改数据不是一个选项。 我的代码: Dim x As Long x = cnum.Value textbox1.Value = Application.WorksheetFunction.VLookup(x, Range("A2:B5"), 2, False)

用户表单激活首先启动的表单

我有一个用户窗体,几个button用于运行不同的macros。 在macros的执行结束时,它隐藏了userfrom。 我用下面的代码重新生成了用户窗体的closuresbutton: Private Sub UserForm_QueryClose _ (Cancel As Integer, CloseMode As Integer) ' Prevents use of the Close button If CloseMode = vbFormControlMenu Then hmm Cancel = True End If End Sub 嗯隐藏userfrom。 现在的挑战是假设有3个工作簿。 工作簿A:macros已启用的工作簿,其中我编写了用于userform和子例程的代码 工作簿B:在哪里按下组合键,并显示userfrom 工作簿C:我想在同一个userfrom的帮助下执行相同的macros 现在当我按下组合键(而工作簿C被激活)时,它将激活其他工作簿(我从第一个用户开始的那个工作簿),然后显示userfrom。 虽然当我按下userfrom上的某个button时,它会运行相关的macros,但会激活首先启动表单的工作簿。 我想保持相同的工作簿激活,这个组合键被按下来显示userfrom(所以它不去以前的工作簿)。 请帮忙 代码: 这是关键的组合,并已保存在Microsoft Excel对象的ThisWorkbook中 Private Sub Workbook_Open() Application.OnKey "%{s}", "LoadMenu" End Sub 这些过程在代码模块中,加载并隐藏userfrom(命名为MainMenu) Private […]

为不同的用户分开Excel用户表单标签

我在工作表中有数据,这些数据是作为用户注册到他select的访问types(作为学生或教授)而生成的。 我有两个用户forms(frmStudent和frmProfessor)。 我的问题是,如何在用户login时更改用户窗体的标题(姓名,课程/部门,性别) 例如:当user123login时,frmStudent显示在工作表中列出的相应的名称,课程和性别是用户表单的标签中显示的内容。 (frmStudent.lblname.caption会更改为“Bogart MAngifico”,当然还有性别)。或者,如果user456loginfrmProfessor显示,并且与标签一样。 另外,在他们的注册过程中,我让他们select使用两个选项button的访问types。 我曾尝试使用循环(我用作frmLogin,检查用户名和密码是否正确),但我似乎无法使其工作。 显示代码可能会有帮助。 请考虑我的问题,因为我是VBA新手。

Excel用户窗体标签不同的颜色文本

我在Excel中创build一个用户窗体,我有一个标签,里面有大量的文本。我需要用粗体和红色来表示某些单词,其余的用标准的黑体。 我可以改变属性中的整个文本颜色,而不仅仅是某些单词。 这是可能的,如果是这样,我会怎么做呢?

使用用户窗体来调整单元格的范围

我希望有人可以帮助我的查询。 到目前为止,我有一个Excel电子表格,然后select一个单元格,然后单击一个button,该button将打开一个滚动条的用户窗体,当您使用滚动条时,此编辑单元格中的数字由+ -1上/下限制你input文本框。 这将实时移动与每个单元格关联的graphics。 当我closures用户窗体时,原始值将重新填充到单元格中。 我希望在使用电子表格的时候,人们最终可以select一些单元格(随机数的单元格,有时你可以select2或者7或者10来更改),并且用户表单会影响所有的单元格同样的方式上面,但是我有这个麻烦。 这将使人们看到这些项目之间的互动的影响。 为了使它适用于一个单元格,我已经将该variables定义为在用户表单之外公开,如下所示: Public SelRange As Integer 然后在UserForm_Initialize内: SelRange = Selection 然后是代码的最大值,最小值,增量等,当使用滚动条时,值被存储在活动单元格的代码: Selection = SelRange 但是,如果我select许多单元格,并尝试这样做,我得到一个types不匹配,这将build议我应该以不同的方式来定义SelRange ,但我不知道这是什么,或者即使这将实际上帮助情况。 谢谢你的帮助。 下面的完整代码: button代码: Public SelRange As Integer Sub Button1_Click() UserForm1.Show End Sub 用户窗体中的滚动条代码: Option Explicit ' Sets default values for when the Userform is opened Public Sub UserForm_Initialize() MinBox.Value = -100 MaxBox.Value = […]