Tag: userform

暂停VBA循环以允许编辑工作表,可以使用或不使用用户窗体

我有一个由几个do和for循环组成的过程,我想find一个简单的方法来暂停例程,并允许用户编辑工作表,与一个msgbox或用户表单恢复执行的地方离开。 我想做这样的事情 dim pause as boolean pause=false For i = 1 To 40 Worksheets("sheet1").Range("A" & i) = i If i = 20 Then UserForm1.Show vbmodeless Pause = true Do until pause = false loop Else End If Next i End Sub 其中,暂停条件将由用户窗体上的一个子设置。 这个循环只是崩溃。 理想情况下,我希望用户窗体具有可以运行子button的button,但是也可以在执行暂停时直接编辑单元格。

如何在Excel VBA,userform中修改date格式

我有一个UserForm自动填充给定的数据从表中,我无法获得date的格式更改。 我不知道我的代码出错了。 Set name_ = Display.Controls.Add("Forms.Label.1", "Test" & labelCounter, True) With name_ .Caption = Format(debt_name_cell, mmm – yy) .Left = 10 .Width = 50 .Top = 10 * labelCounter End With Set debt_name_cell = debt_name_cell.Offset(1, 0)

Excel VBA在for循环中递增variables

我仍然是VBA编程的新学习者,而且遇到了一个我似乎无法find解决scheme的问题。 我正在尝试创build一个工作簿来处理食谱。 我正在调用一个用户窗体,用于在一个macros中添加一个配方,并带有几个文本框input(〜96个)。 当我input所有成分,数量,单位,然后按确定button,我想要它写在用户表单中的内容到工作表。 所有的文本框都以一个数字按升序排列(如.txtIngredient1,.txtIngredient2,…)。 是否有可能使用for循环将Me.txtIngredientX.Value复制到工作表上的范围? 我目前的代码片段: Sheets("Recipes").Range("B" & addatrow + 0) = Me.txtIngredient1.Value Sheets("Recipes").Range("B" & addatrow + 1) = Me.txtIngredient2.Value Sheets("Recipes").Range("B" & addatrow + 2) = Me.txtIngredient3.Value Sheets("Recipes").Range("B" & addatrow + 3) = Me.txtIngredient4.Value Sheets("Recipes").Range("B" & addatrow + 4) = Me.txtIngredient5.Value Sheets("Recipes").Range("B" & addatrow + 5) = Me.txtIngredient6.Value Sheets("Recipes").Range("B" & addatrow + 6) = […]

显示当前时间(EST)

我创build了一个用户窗体,其中包含一个显示当前EST时间的文本框。 唯一的问题是,这个反映的时间当然是我们国家目前的时间,所以我想把它转换成东部时间,这是我们这个时间的- 12:00 。 Private Sub UserForm_Initialize() If ActiveWorkbook.MultiUserEditing Then End If Application.ScreenUpdating = False Application.DisplayAlerts = False txtDate.Value = Format(Now, "mm/dd/yyyy") Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub

如何在多列列表框中获取选定的值

我在我的用户表单中有一个多列列表框,我想要获取列表框中所选行中元素的所有值。 这是我的用户表单: 就像在照片中,我想select一行,然后点击buttonAssocier ,我可以得到这一行的信息。 我可以得到CAN20168301436的第一列我想从整个行中获取信息。 我该怎么做? 这是我点击button的事件: Private Sub CommandButton3_Click() a = ListBoxResultatFind.Text End Sub

用户表单初始化

在我的Userform初始化中,我默认设置了optionbutton1和optionbutton4的值为true。 有四个选项button。 如果用户单击任何其他选项button,我想要以下是图表标题。 我已经调用了有关命令button的子过程: Sub ChartName() If UserForm1.OptionButton1.value = True And UserForm1.OptionButton3.value = True Then ActiveChart.ChartTitle.Text = "First Case" ElseIf UserForm1.OptionButton2.value = True And UserForm1.OptionButton3.value = True Then ActiveChart.ChartTitle.Text = "Second Case" ElseIf UserForm1.OptionButton1.value = True And UserForm1.OptionButton4.value = True Then ActiveChart.ChartTitle.Text = "Third Case" ElseIf UserForm1.OptionButton2.value = True And UserForm1.OptionButton4.value = True Then ActiveChart.ChartTitle.Text […]

无法查看VBA表单

所以我创build了一个表单,并且使用了一段时间。 突然之间,它今天突然停止工作。 其他forms的负载,可以查看,但不是这一个。 最奇怪的是控件仍然响应! 所以我实际上看不到表单,但我仍然可以与之交互。 (只使用键盘没有鼠标点击响应)我知道表单已启用。 但我根本看不到它! 我已经重新启动了Excel和整个计算机。 我甚至完全删除了用户窗体中的所有代码,看看是否可以加载空白的shell,而我可以告诉它加载(它禁用Excel中的所有内容,直到我使用Alt + F4),它仍然是不可见的。 我已经检查启用,所有颜色,Captiuon,宽度,高度,顶部,左,StartUpPostion,SpecialEffect,缩放,DrawBuffer属性,一切都很好。 我也导出并重新导入,而且还是一无所获。 还尝试将其导入到另一个工作簿,没有任何东西。 我在我的智慧结束(不是那么远达到!) 另外,我仍然可以在devise器中看到用户表单,我仍然可以编辑它,我没有任何错误。 这不仅发生在代码中调用表单时,而且即使从devise器运行时也是如此。 任何人都有这个问题? 任何想法或解决scheme?

VBA:WithEvents谜题

我有一个用户窗体, xForm ,是在一个类模块(假设TestClass )实例化为: 'TestClass Dim Form as New xForm Private WithEvents EvForm as MSForms.UserForm Set EvForm = Form 在xForm本身的类模块中,我有一些必须在Form Closing上执行的代码,只有当窗体实际closures时: 'xForm class module Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) 'Do some cleanup, otherwise the app would hang 'If not closing, don't cleanup anything, otherwise the app would hang End Sub QueryClose事件也在TestClass中处理,并可以避免窗体closures: 'TestClass […]

访问没有窗体实例的VBA用户窗体控件

我有一个Excel中的VBA项目的朋友。 这个项目有很多的表单popup,并执行各种function,而电子表格正在使用。 他们中的一些有复杂的Form_Initialize方法,依赖于其他已经存在的事物(当按预期使用项目时,这不是问题)。 我们正试图在应用程序中的每个表单上打印每个控件的名称。 我们的问题是, VBA.UserForms集合只包含已经被实例化的表单,并且我们不能在没有执行Form_Initialize方法的情况下实例化所有表单。 例如: For Each f In VBA.UserForms Debug.Print f.Name Debug.Print "———————-" For Each c In f.Controls Debug.Print c.Name Next c Next f 如果没有使用/加载表单,则什么都不做。 此代码: For Each c in frmConfig.Controls Debug.Print c.Name Next c 首先执行frmConfig.Form_Initialize() ,然后遍历表单上控件的名称打印。 这崩溃,因为在这个表单可用之前需要发生的事情还没有发生。 是否有可能得到窗体上的控件名称没有实例化窗体(避免执行frmConfig.Form_Initialize() )? 任何帮助非常感谢!

从父应用程序断开VBA UserForm

我正在使用Excel生成的用户窗体修改PowerPoint演示文稿(这是一种避免需要启用macros的电子表格的迂回方式)。 表单工作得很好,但是每次我关注它时,Excel应用程序都会关注(因为Excel是父窗口)。 有没有办法阻止这种情况的发生? 我想防止Excel使用UserForm时,焦点。