Tag: userform

使用另一个工作簿中的用户表单

我有一个受我公司保护的加载项。 我的目标是编写一些VBA来自动化加载项的大部分点击操作。 其中的大部分代码都围绕着input到用户表单中,所以我现在所使用的方法是编写代码来处理这些用户表单,而不是重写他们的代码来不使用用户表单。 加载macros在打开用户表单的模块之一中有一个macros。 所以我只是用它来打开用户窗体,这不是问题。 但是,如何访问用户表单中的函数呢? 我需要这样做来模拟用户窗体上的点击。

将用户表单结果传递给vba代码variables

我有一个代码来计算文件夹中的文件,如果他们的名字包含特定的string。 例如:如果我想要它的名字(Close_26_03_2003.csv)closures的文件数。 目前代码读取工作表中单元格的值,并使用(InStr函数)在文件名称中search该string。 问题是我必须在单元格中写入文件的types。 我想要做的是创build一个用户窗体,有三个选项button(打开,closures和取消)。 对于打开,它将string设置为打开,并search名称上的文件(与closures相同)。 取消结束子。 问题是我不知道哪些代码,我必须在用户窗体中使用,不知道如何将它传递给计数文件的代码(我把它分配给一个variables)。 代码是这样的: Sub CountFiles3() Dim path As String, count As Integer, i As Long, var As Integer Dim ws As Worksheet Dim Filename As String Dim FileTypeUserForm As UserForm1 Application.Calculation = xlCalculationManual path = ThisWorkbook.path & "\*.*" Filename = Dir(path) 'the problem is here: 'x = user form […]

Excel VBA Userformcheckbox访问

我正在编程创build一个基于工作表范围内的行数(当前设置为一个固定的数字进行testing)的用户窗体。 然后用户检查他们想要检查的框,然后点击命令button。 用下面的代码运行的用户表单有一个命令button和一个手动添加的checkbox。 其他checkbox以编程方式添加。 我无法弄清楚如何从创build的checkbox有问题的价值。 我只是得到一个错误,“testing箱”没有定义。 我知道我错过了一些简单的… 有什么想法吗? 谢谢! Option Explicit Private Sub updateTablesBtn_Click() If CheckBox1.Value = True Then MsgBox "true" End If If testBox.Value = True Then MsgBox "true" End If End Sub Private Sub UserForm_Initialize() Dim chkBox As MSForms.CheckBox With formTableUpdate .Width = 150 .Height = 200 '15 + 20 * (noOfVariants + […]

从用户表单button传递string单击以Excel VBA

我创build了一个用户窗体,其中包含打开的PowerPoint文件的列表,并让用户select要使用哪一个。 当他们点击“设置PowerPoint”button时,我想将该button传递给VBA模块,在那里我将PowerPoint设置为用户刚刚select的那个。 任何帮助将不胜感激。 UserForm代码: Option Explicit Public SelectedPPT As String Private Sub cmdCloseForm_Click() Unload Me End Sub Private Sub ComboBox1_Change() ComboBox1.RowSource = "Array" End Sub Private Sub setPPT_Click() 'Not sure if this is the best way to select the ppt the user has chosen? SelectedPPT = Me.ComboBox1.Value End Sub 这就是UserForm的样子: 那我怎样才能拿SelectedPPT并把它传递给模块,这样我才能select那个特定的PowerPoint?

dynamiccheckbox全选

我使用下面的代码创build了一个dynamiccheckbox的用户窗体。 由于列表是dynamic的,因此我正在努力弄清楚如何在底部(或任何地方)添加全选/全选全选checkbox。 任何援助将不胜感激。 Private Sub UserForm_Initialize() 'Create Checkboxes form with director names Dim lRow As Long Dim i As Long Dim chkBox As MSForms.CheckBox lRow = Cells(Rows.Count, 2).End(xlUp).Row Sheets("Directors_Database").Activate For i = 4 To lRow Set chkBox = Me.Controls.Add("Forms.CheckBox.1", "CheckBox_" & i) chkBox.Caption = Worksheets("Directors_Database").Cells(i, 2).Value chkBox.Left = 5 chkBox.Top = 5 + ((i – […]

在VBA中,为什么将一个文本框的值放入一个单元格触发另一个用户表单子程序中的for循环?

我创build了2个文本框,3个button和一个带有两列的列表框。 如果我点击列表框中的一个条目,被选中的列表条目被转移到两个不同的文本框。 请参阅下面的代码: Private Sub NewSourceListBox_Click() Dim i As Integer 'Show the selected data in the corresponding text boxes For i = 0 To NewSourceListBox.ListCount – 1 If NewSourceListBox.Selected(i) Then 'Hide the add button and show the change button NewSourceBtnChange.Top = 168 NewSourceBtnChange.Visible = True NewSourceBtnAdd.Visible = False NewSourcesIDTxtBox.Value = NewSourceListBox.List(i, 0) NewSourcesSourceTxtBox.Value = NewSourceListBox.List(i, […]

Excel VBA – 从用户表格填充单元格的顺序 – 似乎几乎是随机的?

也许这篇文章有点长,但是我希望你能读一下,对我有一些帮助。 我一直在努力制作焊工资格考试logging(WQTR)的用户表格。 由于表单是107个​​字段,我创build了一个相当复杂的模块,允许用户保存他们的进度。 而是input冗长的解释,我在这里添加完成的模块。 我在代码中做了详细的评论,但是让我知道是否需要解释。 一切都编译好,它做我希望它做的一个例外。 我假设(不知道为什么),脚本读取文本框的顺序并input到工作表(全部在一行中)将与选项卡顺序同步。 但是,情况并非如此。 事实上,我看不出特别的顺序。 我认为这与我如何根据用户表单中的标签创build列的标题有关,但我不确定。 尽pipe我将所有标签的TabStop属性设置为False,但我确实确保标签按照Tab键顺序排列。 下面是我在模块中的代码。 我还有其他几个模块,但没有一个对这个问题有任何影响。 Option Explicit Dim ws As Worksheet Dim welderNameEntered As String Dim welderName_ As Variant Dim welderFirstName As String Dim welderMiddlename As String Dim welderLastName As String Dim sheetName As String Dim arrayLength As Integer '******************************************************************************** '***Controls the order of execution in this […]

从VBA中的另一个macros调用时阻止UserForm可见

我正在从一个工作簿(即wb1.xlsm)运行一个macros,该工作簿将模板工作簿复制到另一个位置并重命名它(即.wb2.xlsm)。 然后,它使用Application.Run运行位于wb2中的AutoSetup()Sub。 这将根据给定的参数创build适当的工作表。 我的问题发生在这个过程中。 它使用用户窗体中出现的现有function进行设置。 当我运行macros时,我不想看到任何东西popup,但即使与Application.Events和Application.Visible设置为False用户窗体执行设置计算仍然popup,并可见。 有什么build议么? 代码如下: 'AutoSetup Module Public Sub AutoSetup(Project As String, Program As String, TestName As String, _ TestType As String, TaskNumber As String, Token As String) Dim TokenArr() As String Application.ScreenUpdating = False Application.EnableEvents = False Set IntSht = ActiveWorkbook.Sheets("Integrations") Set DctSht = ActiveWorkbook.Sheets("Duct") IntSht.Range("B4").value = Program IntSht.Range("B5").value = TestName […]

使用用户窗体更新多个工作表

我已经创build了一个用户表单,它search了一个引用号码,然后用“主表”中的引用号码的行填入用户表单字段。 事实上,参考可能实际上是在3张相同的信息和我想要做的事情是,当我更新信息拉到用户表单更新所有3张。 你能协助吗? Private Sub Update_Click() Dim searchRange As Range Dim foundCell As Range Dim mysearch As String Dim ws1 As Worksheet Dim ws2 As Worksheet Dim ws3 As Worksheet Dim ws4 As Worksheet Set ws1 = Worksheets("MasterData") Set ws2 = Worksheets("X") Set ws3 = Worksheets("A") Set ws4 = Worksheets("C") mysearch = Me.Search.Value With ThisWorkbook.Sheets("MasterData") […]

当Query_Close的取消争论总是等于True时如何closures用户窗体?

当我意外地创build了一个无法closures的用户表单时,我正在编辑用户表单: Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) ' Logic that always evaluated to: Cancel = True End Sub ShowModal属性设置为True,所以你不能与Excel或VBE交互,所以看起来不可能杀死表单。 无论CloseMode(例如,Alt-F4)如何,逻辑总是评估为Cancel = True 。 最终的解决scheme是保存工作簿并使用任务pipe理器来结束Excel。 所有的信息都被正确地保存了,但是这是有效的,但是这是一个相当脏的解决scheme,我宁愿避免。 这些问题: 用卸载closures用户窗体不起作用 无法closures用户窗体 处理不当的closures工作簿,导致一些错误,它仍然存在。 当Query_Close事件中的Cancel始终等于True时,是否有办法closures用户窗体(已经加载)?