Tag: userform

VBA:运行时错误9 – 似乎无法find在同一个UserForm代码模块中的公用function

这里是我build立的用户窗体的代码,一切运行顺利与testingarrays。 我正在寻找与公共函数GetMatchingArt的部分匹配,这是他自己的罚款,为每个比赛添加一个OptionButton 。 但是当我尝试在UserForm_Initialize 调用此函数时,系统地给出运行时错误9 (下标超出范围)。 意思是它找不到这个函数,尽pipe它是Public的 ,即使它们在同一个模块 (UF的Code模块)中。 有UserForm_Initialize ,我似乎无法find一种方式来调用我的function… Private Opt As MSForms.OptionButton Private Prod() Private Stock() Private Sub UserForm_Initialize() Dim MaxWidth As Long, _ TotalHeight As Long, _ A() MaxWidth = 0 'Add_Options (Split("test1,test2,test3,test4,test5,test6,test7", ",")) 'Call GetMatchingArt 'A = GetMatchingArt() 'Add_Options A 'Add_Options GetMatchingArt Add_Options GetMatchingArt() For i = 0 To UF_Prod.Controls.Count […]

如何通过refeditselect一个范围更新用户表单标签

我有一个用户表单和2个重新编辑框。 他们都允许用户select一个单元格。 我在每个refedit下面都有一个标签,我想在该行显示特定单元格的文本(不一定是选定的单元格),我想这应该是这样的: Range("D" & Range(Refedit1.Value).Row) 或类似(任何build议/改进,这赞赏) 我的问题是:每次select新的单元格时,如何获得此更新? 我已经读过,refedit是越野车,如果过于复杂,可以很容易地打破。

VBA UserForm – 使用TextBox作为十进制数字input的最佳方式,与区域设置无关?

我开发了一个UserForm来缓解我的一个项目的DataBaseinput。 在这个用友中,有一个文本框专用于一个数值 。 我使用这个代码来避免文本input: Private Sub TextBox1_Change() If Right(Me.TextBox1.Value, 1) = "." Or Right(Me.TextBox1.Value, 1) = "," Or _ Right(Me.TextBox1.Value, 2) = ".0" Or Right(Me.TextBox1.Value, 2) = ",0" Then Else Me.TextBox1.Value = Val(Me.TextBox1.Value) End If End Sub 我的问题是: 在美国的地区设置 ,它几乎工作 :我可以用小数点分隔符input一个十进制数. ,但每次在分隔符右侧的第一个数字之后input一个零时,数字将被截断为一个整数。 在法国的地区设置 ,我只是不能input任何小数 ,它总是一个整数。 我可以显示. , .0 ,或者,0 ,但是当我走得更远的时候,每次被截断为一个整数都会被擦除。 我看到我们也可以使用CDbl()或者这样的函数,但是当我尝试每次input一个字母时都会得到一个错误。 也许一个CDbl()与error handling程序使用Val()就足够了,但我不知道,我不能找出一个方法来做到这一点!

用户input到下一个空单元格不工作

我已经build立了一个用户窗体,将两个值input到一个范围内的下一个可用单元格。 这个代码是: Private Sub BTNSUBMIT_Click () Dim I AsLong Dim X AsLong Sheets("Sales").Activate ActiveSheet.Range("B3").Activate Do While IsEmpty(ActiveCell.Offset(I, 0)) = False I = I + 1 Loop ActiveCell.Offset(I, 0).Value = CBCLIENTS.Value Sheets("Sales").Activate ActiveSheet.Range("O3").Activate Do While IsEmpty(ActiveCell.Offset(X, 0)) = False X = X + 1 Loop ActiveCell.Offset(X, 0).Value = TBTONS.Value End Sub 这些按照预期工作,select下一个空单元格,写入客户端或吨值,并将未来input写入下一个空单元格。 不过,我试图使用相同的代码checkboxinput一个值,它不起作用。 相反,checkbox会一直写入活动单元格的顶部。 代码如下: Private […]

Excel用户窗体标签的加速键不起作用

我在我的macros中有一个用户表单。 我用一个标签replace了ActiveXbutton。 每个ActiveXbutton都有一个加速键,它们都像预期的那样工作。 一旦我将ActiveXbutton更改为标签,加速键不再使用标签。 我不确定。 我会很感激任何build议让加速键再次工作。 谢谢您的帮助

VBA:多个用户表单引用相同的代码

我有一个VBA代码,通过用户窗体接受用户input(标准),创build符合所述标准的项目列表,并通过消息框随机地输出其中一个列表项目。 我想要创build第二个用户窗体,将在上面的代码完成后打开,并让用户窗体显示随机输出。 我有几个关于如何完成的问题。 我想第二个用户窗体包含一个标签,其标题将反映随机输出。 我希望第二个用户窗体允许用户重新执行原始代码(即改变随机结果) 任何人都有这方面的经验?

Excel VBA – 如何使用名称中的variables来打开用户窗体

我试图打开某个用户窗体的基础上,在一个工作表的单元格的值。 有17个用户窗体,所以我不想为每个表单使用17个if语句: If ActiveCell.Value = 1 Then UserForm1.Show End If 有没有一种方法可以使用variables来显示表单? 我在想: Dim i Do If ActiveCell.Value = "" Then Exit DO End If i = ActiveCell.Value UserForms("UserForm" & i).Show ****THIS is what doesn't work ActiveCell.Offset(0,1).Select Loop 我只需要能够使用variables来调用用户窗体。 这甚至有可能吗? 在此先感谢您的任何答案/build议! -大卫

用户自定义命令button,基于checkbox复制True / False

嗨,我是新的Excel VBA,我被困在下面的问题, 我的工作簿有sheet1 = Chandler_Endorsements(包含启动UserForm1的button)。 我的用户窗体有26个checkbox和2个CommandButton(复制和复位)。 每个checkbox都与工作簿中工作表2中的单元格相关联。 每个后续单元格都有一个值,例如。 ABc,XYz等以特定的格式。 我的目标是让用户检查他们想要select的每个项目的checkbox,然后select“复制”(CommandButton1),然后他们可以粘贴这些文件。 例如。 如果他们选中了checkbox1和2,则与这些checkbox关联的单元格将被选中并复制,然后粘贴到单词文件上。 另外,如果checkbox稍后由用户在该单元之间取消select并被复制。 我用下面的代码给每个checkbox赋值: Private Sub CheckBox1_Click() CheckBox1.Caption = Range("A3").Value End Sub Private Sub CheckBox10_Click() CheckBox10.Caption = Range("A14").Value End Sub 而且,为了处理相关的细胞,我使用下面的代码: If CheckBox1.Value = True Then ActiveSheet.Range("A3").Copy Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Else: CheckBox1.Value = False End If If CheckBox2.Value = True Then ActiveSheet.Range("A4").Copy […]

UserForm使用条件填充列表框

我有一个名为db.xls的不同工作簿中的五列数据库: userid – date – name – subject – comments 我填写这个数据input表单(工作正常)。 问题出在UserForm中,我需要检索列表框中特定条件的特定条目。 我需要把名称和主题放在两个文本框或下拉列表中,这两个标准填充一个列表框,按date+主题升序排列,当我点击任何列表框项时,它会查找并给我留言与文本框中的那一行。 CODE: Private Sub searchbutton_Click() Dim nwb As Workbook Application.ScreenUpdating = False Set nwb = Workbooks.Open("C:\db.xls", _ False, True) txtsubject.Text = "" Set xSht = nwb.Sheets("notes") Lastrow = xSht.Range("C" & Rows.Count).End(xlUp).Row strSearch = txtname.Text Set aCell = xSht.Range("C1:C" & Lastrow).Find(What:=strSearch, LookIn:=xlFormulas, _ LookAt:=xlPart, […]

如何通过dynamic创build的用户窗体上的checkbox循环?

我试图利用一个dynamic创build的用户窗体,并根据什么框检查,灰色的某些单元格。 作为背景,这是一个注塑设备。 QA设置正在运行的腔体编号。 这个dynamic的用户表单根据在工作表上input的腔体编号创buildcheckbox。 Option Explicit Private Sub UserForm_Initialize() Dim col As Long Dim row As Long Dim lcol As Long Dim i As Long Dim j As Long Dim chkBox As MsForms.CheckBox Dim l As MsForms.Frame Dim t As MsForms.Label Set l = Me.Controls.Add("Forms.Frame.1", "cavz", True) l.Caption = "BLOCKED CAVITIES" l.Height = 195 Set […]