Tag: combobox

用范围填充combobox并删除空白

我以为这会很简单,但无论什么原因,我的combobox总是空的,我不知道为什么! 在列BI有从单元格B3向下的文本,并希望此列表填充我的combobox(称为ComboBox1)。 B列中的一些单元格是空的,我不希望这些在combobox中,所以这是我有的代码: Private Sub CompanyList() Dim c As Range With Worksheets("Database") For Each c In Worksheets("Database").Range("B3", .Range("B" & Rows.Count).End(xlUp)) If c.Value <> "" Then ComboBox1.AddItem c.Value Next c End With End Sub 我的工作表被称为数据库,ActiveXcombobox在同一张工作表上,它被称为ComboBox1。 我在哪里错了? UPDATE 我更改了代码,以便在更新单元格时运行 Private Sub Worksheet_Change(ByVal Target As Range) 但是,现在当我更新一个单元格时,它会将整个列B添加到combobox中。 它不是添加空白单元格,而是从空白单元格的下面添加值,这是很好的,但是每当我做出更改时,它只是添加所有内容。 虽然考虑这个问题,但我不确定为什么我不这么想。 但是,如果我在列表中更改公司名称,我仍然需要combobox在实时更新。

VBA在searchbuild议的用户窗体上筛选combobox

我用一些combobox创build了一个excel用户表单,附上了一个文档,解决了基本问题。 我想出了如何过滤/自动更新我的combobox,并减lessinput列表,而我开始在列表中键入。 然而,只要我select一个项目,我得到以下错误:“无法获得Range类的CurrentRegion属性”。 我已经尝试了许多不同的解决scheme来摆脱这个问题。 但是还是无法弄清楚这个最后的错误。 即使当我尝试使用“范围”,而不是“CurrentRegion”,我得到这些错误。 因为我想将这个特性应用到我的用户窗体上的所有combobox上,所以我把所有的东西放在类事件中。 我已经在网上find了一些东西,但是这些基本上都是在工作表上的combobox。 我喜欢主动更新用户表单上的数据。 我想我已经把我在网上find的所有东西都应用到了我现在有的代码中,但仍然需要解决这个最后的问题。 这是我的示例文件 非常感谢你! 最好的问候,马塞尔 Option Explicit Public WithEvents myCBox As msForms.ComboBox Dim data As Range Private Sub myCBox_Change() Set data = filter.Cells(1, 1).CurrentRegion ' filter.Activate With myCBox .DropDown ' FILTER list.Cells(1, 1).CurrentRegion.AutoFilter Field:=1, Criteria1:="*" & .Value & "*" ' COPY filter.Cells.Clear list.Cells(1, 1).CurrentRegion.Copy Destination:=filter.Cells(1, 1) Set […]

VBA中多页面的Combobox_Changefunction

我有多页面用户表单。 我创build了一个button,当我点击这个button时,它添加了一个Combobox和一些标签和文本框。 后来我需要为这个Combobox创build一个改变function。 但是,我不能使用Combobox的名字。 Private Sub add_ndc_button_Click() ndc_page_count = Me.ndc_pages.Pages.Count Me.ndc_pages.Pages.Add ("NDC " & ndc_page_count + 1) Set ndc_no_textbox_pages(ndc_page_count + 1) = ndc_pages.Pages(ndc_page_count).Controls.Add("Forms.ComboBox.1") With ndc_no_textbox_pages(ndc_page_count + 1) .Top = first_c_y + space_between_rows .Left = first_c_x + space_between_columns .Height = text_height .Width = text_width .RowSource = "=ProductMasterData!F2:F19" End With End Sub 然后我需要使用button单击创build的名称创build以下function。 但是,ndc_no_textbox_pages(1)_Change()给出错误。 Public Sub ndc_no_textbox_pages(1)_Change() […]

填充combobox问题 – 每次select框时重复的值,并且命名范围不填充

我是新来的VBA和StackOverflow,所以我提前道歉,任何错误。 我有一个用户窗体,最终将有16个combobox。 所有这些combobox中的16个将具有相同的5个调查响应选项)。 我的第一个尝试是像这样填充它们,每个combobox重复16次: Private Sub cboAE1A_DropButtonClick() 'Populate control. Me.cboAE1A.AddItem "Strongly disagree" Me.cboAE1A.AddItem "Disagree" Me.cboAE1A.AddItem "Neither agree nor disagree" Me.cboAE1A.AddItem "Agree" Me.cboAE1A.AddItem "Strongly agree" End Sub 但是,当我testing表单时,不止一次selectcombobox复制响应选项。 所以,如果我点击它,一切都很好。 第二次,我看到3组响应选项,等等。 这是为什么? 我能做些什么来防止它? 其次,为了避免重复上述代码16次,我find了这个链接,并试图使其适应我的目的: Private Sub ufrmGenderTraining_Initialize() 'Populate AE1A combo box. Dim rngRespuestas As Range Dim ws As Worksheet Set ws = Sheets("INPUTS") For Each rngRespuestas In […]

Excel VBA – 级联下拉菜单清除/重置

这是我的第一篇文章,我很激动。 另外有点强调,因为我需要很快find一个解决我的问题的工作,但是我们会到达那里。 所以,我想出了一个两张excel文件。 一个(“数据库”)有一个大约一百行我们项目的表格,其中一列是“地区”和“办公室”。 该地区是项目所在地,办公室是该地区内哪个办事处pipe理该项目。 第二个工作表(“dashboard2”)有一套使用复杂公式的指标。 两个下拉菜单(我曾经把它们称为表单控件combobox,但它似乎像Excel命名为“下拉1”和“下拉2”)允许用户select一个区域和办公室。 第二个下拉菜单已经根据第一个下拉菜单的值从已命名的范围中进行select。 这是伟大的。 现在,你可能会看到我要去的地方:除了当我改变区域时,“办公室”不会重置,这一切都可以正常工作。 更具体地说,如果我select该地区的第一个区域和第四个办事处,然后切换到第二个区域,那么我将为该地区的第四个办事处提供数据,而不是消隐第二个下拉菜单。 我不熟悉VBA,我已经尽了最大的努力去做所有事情。 但是,在这种情况下,感觉就像是必须的,我被困住了。 使用各种网站和教程,我有以下代码: Private Sub DropDown1_Change() myVal = ThisWorkbook.Sheets("Dashboard2").DropDown1.Value 'loop thru col G of Database lr = ThisWorkbook.Sheets("Database").Cells(Rows.Count, 1).End(xlUp).Row 'clear combobox 2 ThisWorkbook.Sheets("Dashboard2").DropDown2.Clear 'loop thru For x = 10 To lr If myVal = ThisWorkbook.Sheets("Database").Cells(x, 8) Then 'add to combobox ThisWorkbook.Sheets("Dashboard2").DropDown2.AddItem ThisWorkbook.Sheets("Database").Cells(x, 7) End […]

填写Excel +从Microsoft Sql Management Studio数据库表填充active x comobo框

我有一个Excel文件,我试图从一个Microsoft SQL数据库拉值。 我正在尝试使用与该ID关联的表ID和string值从表中添加值。 我遇到了一个无效的参数错误。 我能够添加xlVal如果我宣布的整数值,并设置第一个项目= 0,然后我可以加1到xlVal使每个整数值唯一,但这些值将不会允许我引用特定的行数据库,如果我想拉回来更新数据库的值。 基本上我想知道是否有一种方法来设置pvargindex值=我的数据库ID值,因为我没有一个整数在我的数据库中以0开始。我也尝试添加一行(select type …,0)之前循环运行,但我无法得到这个工作。 Private Sub populateType() Dim dbName As Object Dim dbResults As Object Set dbName = CreateObject("ADODB.Connection") Set dbName = openDBConn("./System", "System") Set dbResults = dbName.Execute("SELECT ID_Type, Type FROM Const_Type WHERE Active = 1 AND Type <> 'N/A' ORDER BY Type") Sheet1.ComboBox1.Clear Do While Not dbResults.EOF Dim xlStr […]

Excel 2007 VBA ActiveXcombobox添加424错误

我坚持添加一个ActiveX组件。 我在Excel 2007中使用VBA添加一个ActiveXcombobox时收到错误代码424.我希望这里有人会如此善良,帮助我。 Sub addComboBx() Dim countColl As Double Dim cbx_name As String Dim objChBx As OLEObject Dim comboBx As ComboBox Dim rng As Range Dim rowNr As Double rowNr = 27 lastRow = 115 LastRange = "B2: F" & lastRow arrayCountry = Worksheets("Sheet 1").Range(LastRange).Value countColl = countRows(rowNr) 'Sub that counts rows from line X […]

从userform复制粘贴

我做了一个用户表单。 它包含大约19个combobox。 combobox有2个选项YES和NO 。 然后在每个combobox的前面出现一个文本框,其中input了注释。 我想要的是,如果用户从combobox中select“否”,我想复制粘贴该combobox的注释从userform到另一个Excel表单。 现在我正在复制粘贴所有评论。 所以我想要添加这个function。 以下是我目前使用的代码。 任何人都可以帮助我升级这个代码,以及添加上面提到的function。 Private Sub () Dim ws As Worksheet Set ws = Worksheets("PQCILDMS") Dim newRow2 As Long newRow2 = Application.WorksheetFunction.CountA(ws.Range("A:A")) + 1 ws.Cells(newRow2, 1).Value = cmbDMS.Value Dim newRow3 As Long newRow3 = Application.WorksheetFunction.CountA(ws.Range("A:A")) + 1 ws.Cells(newRow3, 1).Value = cmbYesNo.Value Dim newRow4 As Long newRow4 = Application.WorksheetFunction.CountA(ws.Range("A:A")) + […]

VBA Workbooks.open方法从云存储

代码是不工作,如果我把一个URL链接,但它确实工作,如果它从我的硬盘上。 有什么build议? 或者我应该使用Microsoft Access? Sub import_metering_actaris() Dim directory As String, fileName As String, sheet As Worksheet, total As Integer Application.ScreenUpdating = False Application.DisplayAlerts = False *****directory = "https://app.box.com/files/0/f/11396351585/1/f_95668743837" fileName = Dir(directory & "CS-FQC MV-001-01 Rev B (ACTARIS).xls")***** Do While fileName <> "" Workbooks.Open (directory & fileName) For Each sheet In Workbooks(fileName).Worksheets total = Workbooks("qc-generator.xlsm").Worksheets.Count Workbooks(fileName).Worksheets(sheet.Name).Copy […]

将代码分配给Combobox的_Change方法

下面的代码在工作表的单元格A3中添加一个ComboBox 。 它还会写入代码,以便在ComboBox更改值时,单元格A2将更新为该值。 这里是代码: Sub AddComboBox() Dim oWS As Worksheet: Set oWS = ThisWorkbook.Worksheets("Sheet7") Dim oRN As Range: Set oRN = oWS.Range("A3") Dim oCB As Object Dim sCode As String Dim iLR As Integer ' Get last row for column D (holds the values for combobox) With oWS iLR = .Cells(.Rows.Count, "D").End(xlUp).Row End With ' […]