Tag: userform

VBA:在运行时通过userformbutton退出macros时重新启动macros导致错误429

我有Excel中的macros从其他两个工作簿中提取数据并导入它。 在此过程中,显示​​一个进度条,用户可以随时通过取消和标准Xbutton退出。 当我使用这两个button中的任何一个退出进程时,当我尝试再次启动macros时,它给了我错误429。 不知何故,我的表单仍然活跃,我猜。 在VBA编辑器中按下重置button后,我可以再次启动macros而不会出错。 我的表单上也有一个OKbutton,当导入过程完成后,它变为活动状态。 所有这三个button执行相同的代码片断,closures一切。 唯一的区别是它们在执行的不同点上使用,这使得debugging有点混乱。 我的进度条: 用户表单中的代码: Dim Button As String Sub StartForm(CalledFrom As String) Button = CalledFrom End Sub Private Sub UserForm_Initialize() ProgressBar.PBOKButton.Enabled = False End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If CloseMode = 0 Then If ProgressBar.PBBar.Width < 200 Then If MsgBox("Wollen Sie den Vorgang wirklich […]

根据用户表单设置的行范围添加新的信息行

您好我有一个由3个大小的项目(大,中,小项目大小)组成的Excel文件。 我已经根据他们的项目大小在一个Excel表中分开了。 但是,将来我需要根据项目规模增加新的项目。 我需要一个用户表单运行的代码,并根据项目大小添加新的信息。 到目前为止,我只能设法创build一些代码。 然而,它不工作,因为它会发现任何空行并填写,这不是我想要的。 我想要的是一个代码,这将有助于根据项目大小进行select,并从那里插入新的行。 例如,新的项目大小很小,因此项目信息将被插入在小型项目中find的空行中。 这是迄今为止的代码。 Private Sub CommandAddButton1_Click() lastrow = Sheets("Programme Status Summary").Range("J").End(xlDown).Row Cells(lastrow + 1, "J").Value = TextBoxProjCode.Text Cells(lastrow + 1, "E").Value = TextBoxProjName.Text Cells(lastrow + 1, "C").Value = TextBoxSegment.Text Cells(lastrow + 1, "F").Value = TextBoxSummary.Text Cells(lastrow + 1, "G").Value = TextBoxAcc1.Text Cells(lastrow + 1, "H").Value = TextBoxAcc2.Text Cells(lastrow + […]

带有文本框的Excel用户窗体,如何切换文本框范围内的值

目的:单击某个范围内的单元格(范围:Excel工作表上的K列:K)。 一旦你点击K列中的特定单元格,用户窗体将使用以下代码popup单元格值: Private Sub Worksheet_SelectionChange(ByVal Target As Range) On Error Resume Next If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Range("K:K")) Is Nothing Then Credit_Information.TextBox1.Value = Target.Value Credit_Information.Show End If End Sub 我的问题是取决于我在哪里点击列K,我想在我的用户窗体(上一页和下一页)上使用两个button上下移动K列,并看到我的用户窗体上dynamic更改单元格的值。 这可能吗? 请让我知道是否需要澄清。

VBA不会从其自己的工作簿中调用UserForm

我的工作表上有一个CMDbutton,其代码如下: Private Sub cmdBlastoff_Click() UserForm2.Show vbModeless 'launch gateway userform End Sub 此代码工作了很长时间,但现在正在生成“错误9:下标超出范围”。 我试图调用的用户窗体(UserForm2)位于相同的工作簿中。 我将把下面的userform的完整代码放在相关的情况下,但是它的Userform_initialize子代码中的代码是: Private Sub userform_initialize() Sheets("hiddensheet1").Range("B5").Value = "v7.04" 'sets version # in hidden sheet FileNameChecker_local 'runs a sub (located below in the userform module) to determine the filename and path ValueInjector 'runs a sub (located below in the userform module) to put some […]

如何将焦点设置为当前帧之外的元素?

我有一个简单的用户窗体input数据到macros: 一切工作正常,除了一件事情 – 我想要在底部的命令button来获得焦点,在文本框从不同的窗体填充后,单击文本框被点击时popup。 单步执行代码确实发生了,但不知何故焦点在代码结束之前返回到文本框。 使用Googlesearch一下,似乎可能是围绕文本框有一个框架,但我找不到任何方法来实际解决问题。 两个文本框的代码是相似的,如下所示: Private Sub tbxTil_Enter() DATA_TO_CALENDAR = Me.tbxTil.Value DatePickerForm.Show Me.tbxTil.Value = Format(DATA_FROM_CALENDAR, "dd.mmm. yyyy") If Me.cmdOk.Enabled Then Me.cmdOk.SetFocus Else Me.cmdAvbryt.SetFocus End If End Sub 假设问题是我相信的是,有没有办法将焦点设置到您当前所在框架之外的某个元素? 如果不是,我的代码的实际问题是什么?

我如何在Excel中embedded文件,使用它,然后再次embedded到Excel工作簿的新版本我为Excel创build一个新的用户窗体控件?

我为Excel创build一个自定义Usercontrol(用户窗体),名称是虚拟窗体。 该控件将数据存储在工作簿所在的同一文件夹(例如:VFFile.vf)中创build的外部文件中。 如何将这个文件embedded到excel中(也许是OLEObject?还是有其他解决scheme?) 更多信息:我为excel创build了一个Usercotrol(ActiveX控件),它使用带有定义的外部文件(VFFile.vf)。 而现在为了避免开发人员总是要在他的电脑上定义文件的文件名,我想以某种方式将文件合并到Excel中(当他把这个控件放到Excel工作表时,控件也会把这个文件放入Excel工作簿)。 有没有办法做到这一点?

用选定项目的Recordet信息加载用户窗体(如何加快速度)

我有一个很小的问题,但是仍然是一个问题,它使我疯狂! 我有一个用户窗体(VBA,使用Excel作为前端和访问作为后端),它具有文本框和列表框。 它所做的就是根据用户在列表框中的select,用来自Access数据库的信息填充文本框。 因此,如果用户select具有“001”代码的条目,它将转到Access数据库,logging并填充UserForm。 以下是代码: Private Sub LtaInversiones_Click() Dim rcon As Recordset Dim sql As String sql = "SELECT * FROM INVERSIONES WHERE CODIGO = "_ & LtaInversiones.List(LtaInversiones.ListIndex, 0) Set rcon = BD.OpenRecordset(sql) With rcon CmbCodigo.Text = !Codigo CmbTipo.Text = !TIPO TxtTitulo.Text = !TITULO TxtMonto.Text = !Monto DTFCompra.Value = !FECHACOMPRA DTFVencimiento.Value = !FECHAVENCIMIENTO CmbPeriodicidad.Text = […]

Excel VBA – 通过文本框search带有多列的用户窗体列表框

我想解决所需的代码来过滤或search包含在一个用户窗体,包含多列和多行的列表框。 在用户窗体上,我有一个文本框,允许用户input,理想情况下过滤掉列表框中的不匹配的条目。 我在网上find了一些解决scheme ,但没有什么可以在一个用户窗体中使用多列的列表框。 它从这个例子编码的方式是试图转换一列数据,我猜我需要改变代码来使用一个数组。 我只是不够强大的VBA知道如何改变这一块。 我也收到GoToRow()函数的错误,但我相信它是绑在单列与多列列表框的问题。 我已经包含一个链接到我的项目下面的基本模型,因为我使用了一个用户窗体和一个名为的列表框和文本框。 https://www.dropbox.com/s/diu05ncwbltepqp/BasicListboxExample.xlsm?dl=0 我的用户窗体上的列表框有五列,名为ProjectList,文本框被命名为SearchTextBox。 Option Explicit Const ProjectNameCol = "B" Dim PS As Worksheet Private loActive As Excel.ListObject Private Sub UserForm_Activate() ' Main code on Userform Activation, calls support subs Set PS = Sheets("ProjectSheet") 'stores value for Project Sheet Worksheet as PS Set loActive = ActiveSheet.ListObjects(1) 'populates listbox with […]

VBA Excel尽pipeuserform窗口运行代码然后停止button单击

在这里和谷歌发现一些提示,但不能正确实施。 说我有一个循环运行,我需要显示一个button“取消”的框。 代码必须运行,直到我按下button。 在下面的例子中,我使用了For循环,并在Label1.Caption中显示迭代编号 ' action of UserForm1 on Button Click Private Sub CommandButton1_Click() cancel = True End Sub Public cancel as boolean Sub example () cancel = False Dim i As Integer For i = 1 To 1000 Application.Wait (Now + #12:00:01 AM#) UserForm1.Label1.Caption = CStr(i) UserForm1.Show vbModeless If cancel = True Then Exit […]

在Excel VBA中隐藏非活动的工作表

我在Excel 2013中有一个UserForm,在操作之前清理用户的Excel页面。 公共模块具有以下VBA代码: Sub ShowForm() With ActiveWorkbook .Worksheets("Sheet1").Activate .Worksheets("Sheet2").Visible = False 'Hide didn't work .Worksheets("Sheet3").Visible = False 'Hide didn't work End With UserForm1.Show End Sub 我怎样才能隐藏工作表2和3,并激活或使工作表1可见? 代码应该模仿右键单击选项卡并select“隐藏”。 上面的代码会引发Run-time error '9': Subscript out of range 。