Tag: 表单

根据现有数据插入评论

我有一个小问题,用我的VBA代码。 我做了一个用户窗体,其中有以下几点:Combobox1是Sku编号Combobox2是testing编号Combobox3是testing结果文本框是Comment_To_Result。 'Inserts comments og test result Dim iRow, iCol With ThisWorkbook.Worksheets("Data sheet") iCol = Application.Match(CLng(ComboBox2.Value), .Columns("Q"), 0) iCol = Application.Match(CLng(ComboBox1.Value), .Columns("A"), 0) ' If IsError(iRow) Then MsgBox "SKU not found": Exit Sub ' If IsError(iCol) Then MsgBox "Test number not found": Exit Sub 'Add test result/next step and comment .Cells(iCol, 30).Value = Me.ComboBox3.Value .Cells(iCol, […]

多页选项卡可见,但不活动

我有一个多页的用户表单。 我想要在顶部显示一个多页面的标签,这样用户就知道他在哪个页面上,剩下多less。 但我想通过按下标签名称来禁用在标签之间跳转的可能性。 相反,只有下一个和后一个button才能在页面之间导航。 是仅仅通过使用这些属性是可能的,还是我必须编写mulipage更改的代码?

如何更改VBA中用户窗体的标题栏文本?

我正在维护一个使用VBA for Excel 2002(XP)/ 2003编写的旧应用程序,并试图将其国际化。 为此,我dynamic读取翻译的string,并通过更新.Caption属性更新我的用户窗体上的各种控件。 这符合所有控件的预期效果,但不是表单本身 – 当我更改表单的.Caption属性时,标题栏继续显示“硬编码”值,而新值则显示在其下方窗体本身的“canvas”的顶部。 是否可以更改显示后的用户窗体的标题栏文本,还是必须更改表单的.Caption属性才能显示,以便它被反映在标题栏而不是canvas/客户区? 我的代码看起来像这样: ' in frmFoo Private Sub UserForm_Activate() ' … TranslateDialog Me, "frmFoo" ' … End Sub ' in a VBA module Sub TranslateDialog(pForm As UserForm, pFormName As String) Dim new Caption As String Const notFound As String = "###!!@@NOTFOUND@@!!###" ' … ' GetMessage() returns the […]

在excel vba中检索数据

我对Excel中的VBA很新颖。 我build立了一个用户input数据的表单,在按下button的时候,它将所有的数据放入Excel电子表格并清除表单。 我现在需要的是用户按下一个button(closures显示已经input数据的列表或combobox)的代码,并将这些数据带回到表单中进行更改。 我正在试图阻止他们的电子表格。 谢谢

vba编程需要支持popup日历

我没有vba的经验,并会非常感谢您的帮助与popup日历用户表单的实施。 此链接将引导您到我正在尝试引入到我的工作簿的日历的来源: http://www.ozgrid.com/forum/showthread.php?t=142603 我已经将类模块,用户表单和模块复制到我的工作簿中。 当我启动macros时,这将打开一个用户窗体,我可以在日历上select希望的date。 我想念的是能够将日历中选定的date发送到我的工作簿中的特定单元格。 我将非常感谢,如果有人可以指导我通过如何编写几行代码,将用户表单中select的date发送到我的工作簿中的特定单元格! 再一次,我对这个很新,所以让我知道我的解释是否有什么不清楚的地方。 我花了很多时间在这个,所以任何支持高度赞赏! 这可能只需要一点时间,但对我来说意义重大!

如何将用户表单中的数据添加到工作表上的格式化表格中

我创build了一个带有文本框的用户表单以及combobox。 我无法弄清楚如何将数据添加到使用该用户窗体的工作表上的格式化表。 请帮忙! 表格看起来像这样: Date Inv Company Amount Recd.Date Recd.Amt. 我已经启用了总行选项,所以我需要代码在该特定的表中添加一行(在最后一行之后和总行之前),并自动input特定行中的数据。

Excel 2010 UserForm – 窗体不滚动鼠标滚轮

我有一个使用VBA在Excel 2010中创build的UserForm。 控件是基于来自特定工作表的数据以编程方式添加到表单的。 我的代码添加了所有的控件,然后确定表单是否过长。 如果是,则表单将被设置为500px的最大高度,并启用滚动。 单击滚动条时滚动条出现并按预期方式工作,但鼠标滚轮对表单上的滚动条没有影响。 我还没有看到任何启用鼠标滚轮滚动的属性。 我在Google上find的每篇文章都指向滚动UserForm(ListBox,ComboBox等)中的控件,而不是UserForm本身。 我发现的其他文章追溯到Excel 2003,它不支持鼠标滚轮滚动。 有没有人知道这里发生了什么? 这里是我启用滚动的代码: If Me.height > 500 Then Me.ScrollHeight = Me.height Me.ScrollBars = fmScrollBarsVertical Me.KeepScrollBarsVisible = fmScrollBarsVertical Me.height = 500 Me.Width = Me.Width + 12 End If 我在Windows 7 64位笔记本电脑上使用Excel 2010(32位)。 其他计算机上也出现了同样的问题,并且也运行相同的设置。 我没有访问另一个configuration来testing这个。

如何设置FileDialog不允许双击

我想使用文件打开对话框来提取文件path(如果更容易打开文件) 是否可以设置对话框,以便在双击文件名时不会打开文件? 我想避免的是,如果用户双击一个文件名,但该文件已经打开,则会出现进一步的警报。 或者,或者,如果我设置了这个function,当用户单击对话框的OPENbutton或双击文件名时打开文件的只读版本 – 这是一个更简单的方法吗? 在这种情况下,我使用对话框的Execute方法吗? Private Function FindFilePath() As Boolean Dim selectedMultiFiles As Boolean Dim fd As FileDialog Dim objfl As Variant Set fd = Excel.Application.FileDialog(msoFileDialogOpen) Dim myTxt As String With fd .Filters.Add "Excel Files", "*.xlsx;*.xlsm", 1 .AllowMultiSelect = False .Title = "Choose the file with the target table" .InitialView = msoFileDialogViewDetails If […]

如何连接用户表单文本框的值与任意string?

我正在为我正在处理的Excel工作表创build一个用户表单。 我有一个工作订单号(名为txtWO)的用户窗体中的特定文本框。 我想预先将文本框中的用户input值(5位数string)与文本“WO-”连接起来,然后将其插入到工作表中的单元格中。 下面显示了我写过的一小部分VBA。 ws.Cells(iRow, 2).Formula = "=CONCATENATE(""WO-"",me.txtWO.Value)" 其中,iRow是一个值,格式为long,表示工作表中第一个空行的值。 就VBA而言,这在语法上都是正确的,但是在将值插入单元格之后,我会收到#NAME? 错误。 当我显示公式的计算步骤时,“Me.txtWO.Value”的计算结果为#NAME? 错误。 我无法确定是否发生这种情况,因为我的VBA出了问题,或者我误解了如何使用文本框的值。 但是,如果任何人都可以摆脱任何光,这将是非常感激。 谢谢。 -Sean

延迟除Application.Wait或Application.Sleep以外的其他macros的更好方法?

我创build了一个状态栏,从application.wait工作。 从某种意义上说,这个工作很好。 但是,我希望能够在其他工作表上工作时更新状态栏。 我无法find合适的方法。 以下是我到目前为止。 Private i As Integer Private newHour Private newMinute Private newSecond Private waitTime Private Sub UserForm_Activate() For i = 1 To 10 UserForm1.Label1.Width = UserForm1.Label1.Width + 24 Application.Calculate If Application.CalculationState = xlDone Then newHour = Hour(Now()) newMinute = Minute(Now()) newSecond = Second(Now()) + 1 waitTime = TimeSerial(newHour, newMinute, newSecond) Application.Wait waitTime […]