Tag: combobox

combobox错误:无法设置列属性。 types不匹配

我正在使用Excel VBA UserForms,并试图填充ComboBox但我收到错误Could not set the Column property. Type mismatch. Could not set the Column property. Type mismatch. ComboBox的ColumnCount属性设置为3 。 我使用下面的代码来填充ComboBox : Dim i As Long Dim varList As Variant With UF_Main 'Get CM list With .cbNAEmployee .Clear varList = fGetCMs If Not isArrayEmpty(varList) Then For i = LBound(varList, 2) To UBound(varList, 2) .AddItem varList(0, […]

Excel VBA:之前,之后或更改事件为combobox自动更新另一个?

在我的用户表单中,我有几个combobox:承包商,产品,类别,单位。 他们都充满了来自MS SQL数据库(2012)的数据,然后用户表单执行一个存储过程并插入新的logging。 我想build立一个dynamic的表单,其中combobox将根据之前的combobox的select自动更新。 当从列表中select一个承包商时,我希望产品列表缩小范围,只显示与外部链接的产品(使用SELECT语句)。 然后我希望类别和单位根据所选产品自动填充。 当然,例如,当input新产品时,将显示类别和单元combobox中的完整列表,因此这将需要if语句。 我的问题是使用哪个事件? 在更新或更改事件之前? 或者也许有其他的select来做到这一点? 我做了一些关于这些事件的阅读,看来改变事件并不是一个好的select:“避免创build两个或多个控件,其中包含相互影响的更改事件 – 例如,两个文本框相互更新”,但我是没有足够的感觉,因为我还没有使用之前/之后的事件。 如果到目前为止我所做的任何代码可能是相关的,请让我知道,我会编辑post。 谢谢你的任何build议。

我怎样才能指定一个列来填补Excel Combobox?

第一次在这里问,很抱歉,如果你觉得烦人。 我一直在试图用一个DB过程的结果集来填充Excel工作表中的ComboBox。 到目前为止,我已经正确地收到了结果集,但是当我尝试指定要用来设置combobox值(响应的第三个)的列时,它始终使用id(第一列),甚至当我使用.BoundColumn命令如下: cmd.ActiveConnection = conn cmd.CommandType = adCmdStoredProc cmd.CommandText = "mySP" Set rst = cmd.Execute() With rst i = .Fields.Count vData = .GetRows End With With Sheet1 With .ComboBoxP .Clear .BoundColumn = 3 .List = Application.Transpose(vData) .ListIndex = -1 End With .ComboBoxP.Text = "– Pick one –" End With 命令的顺序是否有问题,使代码总是使用相同的列? 可能是Excel版本问题(我用西class牙语使用MS Excel 2010)?

必须点击combobox的左侧才能工作

Excelcombobox(在excel表格上)只有当您点击箭头的左侧时才能使用。 如果您单击combobox的箭头,则不会发生任何事情。 问题不会发生在所有笔记本电脑上。 combobox为activeX,更改后运行VBA代码。 任何想法是什么造成这一点,以及如何解决? 干杯! 奥利弗。

dynamic引用ComboBox的更简洁的代码

我是VBA的新手。 这也是我在这里的第一篇文章。 我正在创build一个将用作表单的Excel电子表格。 大约有50个combobox是必需的。 代码的每个部分都可以工作,但是我想知道是否有更简洁的方法来执行以下操作: 在不同的工作表上填充范围内的combobox(下面的第1节) validation所选的选项。 如果select无效,那么只发一次错误消息。 它目前被抛出两次。 (下文第2节) 一旦按下标签或input,移动到活动单元格。 (下文第3节) Private Sub Worksheet_Activate() With Worksheets("Sheet6") ComboBox1.List = .Range("AC10:AC" & .Range("AC" & .Rows.count).End(xlUp).Row).Value ComboBox2.List = .Range("AC10:AC" & .Range("AC" & .Rows.count).End(xlUp).Row).Value ComboBox3.List = .Range("AC10:AC" & .Range("AC" & .Rows.count).End(xlUp).Row).Value ComboBox4.List = .Range("AC10:AC" & .Range("AC" & .Rows.count).End(xlUp).Row).Value ComboBox5.List = .Range("AC10:AC" & .Range("AC" & .Rows.count).End(xlUp).Row).Value ComboBox6.List = .Range("AC10:AC" […]

VBA Combobox不显示所有列

我有一个combobox的用户forms填充像这样的项目: For Each thing in things With Me.Combobox1 .AddItem .List(i, 0) = thing.thing1 .List(i, 1) = thing.thing2 … .List(i, 4) = thing.thing5 End with Next thing 在combobox的属性中,我有BoundColumn = 3和ColumnCount = 5 ,我已经设置列表的宽度高达700,并有大量的空白来显示我的其他值,但我永远不能得到比前三列显示。 ColumnWidths似乎也不能正常工作。 我试图设置第一列的宽度为1,黑客得到一个特定的值来填充.text属性,并显示在控件的文本框部分,我已经设置了第二列,单个字符标志15,这似乎工作得很好,但任何进一步的列宽似乎被完全忽略。 我一直在通过文档巡航,但我找不到解决这个问题的任何东西。

获取Excel ComboBox VBA的用户input值

我有一个Excel中的combobox,填充了来自数据库的值。 有2列与第二列绑定并链接到一个单元格。 我希望用户能够input自己的价值。 如果用户从列表中select一个项目,一切都很好。 我得到链接的单元格中的值。 但是,如果用户input他们自己的数据,我会在链接的单元格中得到一个#N / A值。 有什么方法可以检索用户input的值吗? 提前致谢

如何保持Excelcombobox的列表在打字时总是展开

如何保持Excel的ActiveXcombobox的列表始终展开? 当我input我看到这个: 但是在input一个字母“a”后,我想看到这个:

从窗体控件更改为ActiveX时,“范围类的自动过滤方法失败”

我正在使用Excel 2013,并将下面的代码放在窗体控件DropDown / ComboBox: Private Sub ComboBox2_Change() Dim Issuer As String Dim FirstRow As Long Dim LastRow As Long Dim LastCol As Long Dim ws1 As Worksheet Set ws1 = Worksheets("Data") Issuer = ws1.Range("IssuerNum").Value If Issuer = "All" Then ws1.ListObjects("Table1").Range.AutoFilter _ Field:=1, Criteria1:="<>", Operator:=xlFilterValues LastRow = ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row FirstRow = ws1.Cells(2, 1).Row Else ws1.ListObjects("Table1").Range.AutoFilter _ […]

在C#中更改Excel中combobox的索引

我正在写一个程序访问一个包含数据列的Excel模板(在第一列中有一个唯一的ID号)。 根据ID号码的前两个数字,该行将被保留或删除。 在模板中,这个唯一的ID号码列提供一个ActiveX Combobox(位于工作表上)ListFill属性。 当不匹配的行被删除时,ListFill属性被重置,但文本不会被重置。 例如,如果我根据'02'作为列A中唯一ID的前两个数字来select行,我没有任何问题去除所有不以'02'开头的元素,但是combobox文本仍然是“010001”,因为这是即使它不在新列表中,也是模板中的第一个唯一标识。 我告诉你所有这些问问有没有人知道更好的方法来访问combobox? 我可以作为一个OLEObject访问它,但是这不允许我改变combobox的索引或文本属性,因为它们是“只读的”,如下面VS 2013中的intellisense错误: 属性或索引器'Microsoft.Office.Interop.Excel_OLEObject.Index'不能被分配到 – 它是只读的。 错误出现在行上: oleobj.Index = 1; 代码片段如下。 当前Excel应用程序以xlAppforms传递,并传递数组combobox。 combobox的每个成员都包含combobox所在的工作表名称,控件的名称和模板上的ListFillRange。 示例数组成员将是: 工作表Sheet1!cbTest:$ A $ 1:$ A $ 10 private void ResetComboBoxes2(string[] comboboxes, Excel.Application xlApp) { Excel.Worksheet wksht = new Excel.Worksheet(); Excel.Range rng; int listEndCellNum; string listEndCellApha; string listEndCell; for (int i = 0; i < comboboxes.Length; […]