Tag: userform

Excel用户窗体文本框常量集合焦点

首先我要感谢你们所有人。 也许你没有注意到,但你帮我从头开始把VBA抓到一定程度。 我仍然在学习过程中,所以我可能会错过一些非常简单的事情,请温柔:) 首先我想给出一个关于我的问题的小背景更新。 我一直在写一个小程序来扫描传入的部分到我的工作,以保持库存状态。 该程序的最新外观如下所示: 图片上的数字是我最近的噩梦: 1.扫描件号码:这是扫描仪input数值的文本框。 我收到input后,我将这些数据小心地转换为一个variables,并清除文本框的值如下: Private Sub PN_CurrentScan_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = 13 Then EnteredPN = Replace(PN_CurrentScan.Value, Chr(32), "", 1) '<—PN_CurrentScan is the name of text box EnteredPN = Left(EnteredPN, 12) PN_CurrentScan.Value = "" 在对扫描的数据进行一些校正之后,我基本上把它写到工作簿中的一张纸上。 然后,我在同一工作簿中也有一个数据透视表,它使用这个扫描数据作为数据源,并计算每个零件号扫描多less个零件。 2.当前状态:此列表框包含扫描的所有零件编号(来自上述数据透视表)并等待被扫描(来自另一个工作表)。 然后每次扫描一个新的部分时自动刷新它。 3.列表框滚动条:因为我有很长的零件号码列表,所以我无法将所有东西都放在屏幕上,这就是列表框创build滚动条的原因。 足够的背景我想:) 所以,如果我们来关心。 由于我的拼图使用无绳扫描仪来做这个操作,有时他们没有机会看到屏幕,所以他们不明白光标是否在“扫描的零件号码文本框”上。 这就是为什么我不pipe发生什么事情都需要把注意力放在那个盒子上(当然,如果仓库烧毁,地震或者海啸撞到地方,我们什么也做不了,但是不要去想这些)。 我曾试过的东西: 首先,我从属性窗口中禁用所有剩余的对象 […]

VBA – 用户窗体与无限计算循环中的多个文本框

我有一个用户窗体与5个文本框,每次更新我重新计算其他。 但是, 如何避免一个“无限循环”,因为第一个会重新计算第二个,重新计算第一个等… 这里是我的UserForm代码的一部分,只有TextBox_Change(s): Private Sub TxtNewVal_Change() If InStr(1, Me.TxtNewVal.Value, ",") Then Me.TxtNewVal.Value = Val(Replace(Me.TxtNewVal.Value, ",", ".")) 'recalculate values If Right(Me.TxtNewVal.Value, 1) <> "." Then Me.TxtValEUR.Value = Val(Me.TxtNewVal.Value) * Val(Me.TxtTxEUR.Value) Me.TxtValUSD.Value = Val(Me.TxtNewVal.Value) * Val(Me.TxtTxUSD.Value) End If End Sub Private Sub TxtTxEUR_Change() If InStr(1, Me.TxtTxEUR.Value, ",") Then Me.TxtTxEUR.Value = Val(Replace(Me.TxtTxEUR.Value, ",", ".")) If Val(Me.TxtTxEUR.Value) = […]

用户窗体input后重复macros

macros打开工作簿后,将查看单元格“C27”是否包含任何以下文本:位置1,位置2,位置3或位置4。 如果他们这样做,它将继续保存这些位置的模板的2个副本文件。 如果没有,则会打开一个用户窗体从一个combobox中select正确的位置。 如何重置UserFormclosures后的检查,我试图调用Auto_Open卸载后,但它没有工作。 macros Sub Auto_Open() With Range("B30") .Value = Time .NumberFormat = "h-mm-ss AM/PM" End With Dim FileName As String Dim FilePath As String Dim FileDate As String Select Case Range("C27").Value Case "Location1", "Location2", "Location3", "Location4" FilePath = "C:\Users\aholiday\Desktop\FRF_Data_Macro_Insert_Test" FileName = Sheets("Data").Range("C27").Text Application.DisplayAlerts = False ThisWorkbook.SaveAs FileName:=FilePath & "\" & FileName Dim FileCopyName […]

具体的工作簿不可见的Excel VBA

我正在写一个脚本在Excel VBA Workbook应该打开与UserForm 。 我只想要UserForm是可见的,Excel窗口本身是不可见的。 就这样,我写了下面的代码来打开Workbook : Private Sub Workbook_Open() 'Application launch Application.Visible = False 'Hide Excel window EnableResize = False Application.DisplayFullScreen = True 'Preset fullscreeen mode Application.CommandBars("Full Screen").Enabled = False 'Hide command bars WelcomeForm.Show 'Show welcome UserForm End Sub 我意识到,我已经把整个Excel应用程序设置为隐形。 从这个意义上说,现在发生的事情是,当我打开其他Excel工作簿时,只要打开这个工作簿,它们就会变得不可见。 我怎样才能使这个设置只适用于这个特定的工作簿? 谢谢

无法从Excel用户窗体中的多选ListBox中列出所选项目

新的VBA和从列表框中获取选定的项目有一些困难。 我一直在For线上发生错误。 列表框的名称是正确的,我想.ListCount应该工作。 Sub GetListBox1() Dim SelectedItems As String For i = 0 To ListBox1.ListCount – 1 If ListBox1.Selected = True Then SelectedItems = SelectedItems & ListBox1.List(i) End If Next i Debug.Print SelectedItems End Sub

VBA用户表单范围到variables语法问题

我已经在Excel中创build了一个VBA Userform,用户可以在其中select几个范围。 在用户表单中,我通过一系列If和MsgBox语句inputvalidation。 作为其中的一部分,我需要把input的范围作为一个variables。 假设范围是Me.ActDurations,我试图用这个: dim ActDur as range set ActDur = Me.ActDurations 我也试过: set ActDur = Me.ActDurations.Value 而这也是行不通的。 什么是适当的语法呢? 使用第一种types给我一个types不匹配的错误。

Excel用户表单不仅仅是打算select删除整行

我有一个用户表单有一个下拉框,其中一个人可以select一个logging从列表中删除。 下面的代码是删除整个行。 我不要那个。 我只想在我的电子表格中清除A:E之间的单元格。 我不知道如何描述这个,所以我提前道歉。 这里是代码: Private Sub CheckBox1_Click() End Sub Private Sub CommandButton1_Click() Dim lRw As Long ActiveWorkbook.Sheets("RAWDATA").Visible = xlSheetVisible 'get the row number. add 2 because ListIndex starts at one lRw = Me.ComboBox1.ListIndex + 2 ActiveWorkbook.Sheets("RAWDATA").Select Cells(lRw, 1).EntireRow.ClearContents ActiveWorkbook.Sheets("RAWDATA").Visible = xlSheetHidden End Sub Private Sub CommandButton2_Click() ComboBox1.Value = "" ComboBox1.Clear ComboBox1.Clear Unload Me […]

保持checkbox选中用户窗体

目前,我已经创build了三个checkbox的用户表单。 这些checkbox激活我创build的模块。 当我检查用户表单中的方框时,我希望方框保持选中或未选中状态。 有什么想法吗?

将两个用户表单放置在它们之间没有空格

如何调整用户表单的位置,以便在Intialized时将它们并排放置,即移除它们之间的空间。 从答案我试过,但它不起作用 CIF.Show With CIF .Top = Application.Top + 5 .Left = Application.Left + 10 End With Instructions.Show With Instructions .Top = Application.Top + 5 .Left = CIF.Left + CIF.Width End With

如何获得在VBA中设置的标签标题?

这是我第一次创build一个用户窗体。 我寻找的解决scheme,但还没有find一个工程。 我正在尝试为几个标签设置标题。 当表单打开时,我希望它们设置。 我现在有这个(在用户窗体代码: Private Sub Budget_Initialize() Me.Label25.Caption = Format(Month(Now), "mmmm") Me.Label26.Caption = Format(Month(Now) + 1, "mmmm") Me.Caption = "Test, Test, Test!" Me.Repaint End Sub 但它不起作用。 我也试过这个(在ThisWorkbook代码中): Private Sub Workbook_Open() Budget.Show With Budget .Label25.Caption = Format(Month(Now), "mmmm") .Label26.Caption = Format(Month(Now) + 1, "mmmm") .Caption = "Test, Test, Test!" End With Budget.Repaint End Sub 它打开工作簿时打开用户窗体,但它不会更新字幕。 […]