Tag: combobox

在VBA Excel中sortingcombobox

我试图sorting一个combobox没有成功到目前为止。 我正在使用下面在Internet上find的经典代码: Sub SortComboBox(ByRef oCB As ComboBox) Dim vItems As Variant Dim i As Long Dim j As Long Dim vTemp As Variant ' Put the items in a array vItems = oCB.List ' Sort the array For i = LBound(vItems, 1) To UBound(vItems, 1) – 1 For j = i + 1 To UBound(vItems, […]

Excel用户窗体combobox属性Rowsource框问题?

我在Excel中有一个用户表单,用作计算器。 在这个用户表单中,我有两个combobox(1和2) 在VBA编辑器中,selectComboBox1,在属性中,在Rowsourse下我有:Sheet1!a4:a5 在Sheet1中,A4 =奥克兰,A5 =基督城 这很好,当我运行用户表单时,有一个带有两个选项(奥克兰或基督城)的下拉箭头。 然而,我的问题是,当你打开这个工作簿,我有一个VBA命令来隐藏它的用户视线,让他们只有用户窗体工作,这是所期望的。 问题是,如果你有另一个工作簿打开,然后打开这个计算器工作簿(自动隐藏自己)。 然后在已打开的另一个工作簿中填写Sheet1!a4:a5的combobox列表,而不是实际包含用户窗体所来自的“Auckland”和“Christchurch”的工作簿。 我已经尝试通过将下列内容放在行来源框中属性:[book1.xlsm] sheet1!a4:a5,但是这会出现“无效的属性值”错误消息,使combobox的Rowsource更具体。 我也试过做一个: Private Sub Userform1_Initialize() ComboBox1.Additem "Auckland" ComboBox1.Additem "Christchurch" End Sub 而且也试过这个: Private Sub Userform1_Initialize() ComboBox1.RowSource = Workbooks("book1.xlsm").Sheets("Sheet1").Range("a4:a5").Value End Sub 但是,当两个代码打开并运行时,combobox都是空的,没有列表。 我认为easist解决scheme将以某种方式将完整path(包括工作簿名称)放入属性下的行源框中。 但是我必须错过一些东西,因为它为我提供了这个错误? 所有的帮助将不胜感激。 谢谢

VBA用户界面:防止键盘上的COMBOBOX ESCAPE

社区, 在列表结束(或开始)时,有一种方法可以防止活动combobox在按下向下箭头(或向上箭头)时失去焦点。 如果有更好的方法来做到这一点(最好有一个MS标准属性),请分享。 问题:当在combobox列表的最后,如果你点击向下的箭头,它会移动到任何控制物理下的活动combobox。 反之亦然,因为在一个combobox的顶部,并击中向上的箭头。 这是草率的,适得其反。 MS Excel 2013。 解决scheme:为了防止这种焦点丢失,在用户窗体的ComboBox代码中,可以input以下内容: Private Sub Item1_DropDown_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) Select Case KeyCode Case vbKeyDown If Item1_DropDown.ListIndex = Item1_DropDown.ListCount – 1 Then Item1_DropDown.ListIndex = Item1_DropDown.ListIndex – 1 'when at the bottom, stay in active combobox Else: Item1_DropDown.ListIndex = Item1_DropDown.ListIndex 'if not at the bottom, keep […]

没有select的combobox的当前值的ListIndex

在VBA中,combobox的ListIndex属性显示combobox中值的整个列表(数组)中所选项目的索引(从0开始)。 如果没有select,则显示-1。 当我用一个combobox和最后一个值在Excel中调出一张表时,它的ListIndex为-1,而不是实际的ListIndex。 VBA中的快速获取当前非选定值的ListIndex的技巧是什么? 我知道我可以自己手动检查数组(.List属性),但我希望VBA有一些更快的方法来做到这一点。

combobox中的VBA自动填充文本

我正在创build一个comboboxsearch工作表使用工作表名称自动完成function,我可以得到的下拉列表中的工作簿的工作表的名称,但是当我input工作表名称的几个字母,我想显示的build议所有的表格中都有我写在combobox中的字母。 下面是到现在为止所做的代码,我可以select表单名称并将其添加到表单中。 第一个 – 添加一个combobox到第一个工作表并命名(我称之为cmbSheet)。 我使用了ActiveXcombobox(在Excel 2007中,在“开发人员”选项卡下)。 第二 – 打开VBA,并将下面的代码添加到工作簿代码。 每次打开工作簿时,此代码将使用工作表名称填充combobox。 Private Sub Workbook_Open() Dim oSheet As Excel.Worksheet Dim oCmbBox As MSForms.ComboBox Set oCmbBox = ActiveWorkbook.Sheets(1).cmbSheet oCmbBox.Clear For Each oSheet In ActiveWorkbook.Sheets oCmbBox.AddItem oSheet.Name Next oSheet End Sub 第三 – 现在,我去了我的第一个工作表的代码(已添加combobox),并添加将激活combobox中select的工作表的代码。 代码是: Private Sub cmbSheet_Change() ActiveWorkbook.Sheets(cmbSheet.Value).Activate End Sub 现在,当combobox值改变时,相应的纸张被激活。

无法selectcombobox

我有一个名为“工具”的combobox已被添加为Excel 2010工作表的窗体控件。 我还有一个标题为“AdjustmentsAmount”的模块,它是通过点击一个表单button来运行下面的方法。 我已经尝试了几种访问表单控件的方法,而且都没有工作,下面也列出了。 任何人都可以阐明这个问题吗? 码 'Clears all run specifications Sub clearRunSpecs_click() Dim resp As String resp = MsgBox("This will clear all run specifications. Are you sure you want to continue?", vbYesNo) If (resp = vbYes) Then Worksheets("AdjustmentsAmount").Unprotect "pass" Range("D3").Clear Range("D3").Interior.Color = RGB(235, 241, 222) Range("D3").BorderAround LineStyle:=XlLineStyle.xlContinuous, Weight:=xlMedium, ColorIndex:=xlColorIndexAutomatic, Color:=RGB(0, 0, 0) Range("D3").Locked = False […]

function区 – 如何为每个combobox项目设置一个ID?

如何为Excel Ribbon中的每个combobox项目设置一个ID? 下面的代码是我为每个项目设置一个文本(标签)的地方,我想为每个项目设置一个ID,以便稍后识别它。 我怎样才能做到这一点? Private Sub cbIndentItem(control As IRibbonControl, index As Integer, ByRef Label) Label = taskLvl(index).NameLvl End Sub

Excelcombobox更新下拉菜单?

有没有办法刷新combobox? 我有以下的VBA代码。 填充下拉列表,直到列表被清除并填充了匹配项的If语句。 此时,下拉列表只显示带滚动条的单个项目。 但是,如果我closures了下拉菜单并重新打开,则它将正确填充。 Private Sub ComboBox_SiteName_Change() ComboBox_SiteName.DropDown Dim v As Variant, i As Long With Me.ComboBox_SiteName .Value = UCase(.Value) If .Value <> "" And .ListIndex = -1 Then v = Worksheets("Address").Range("Table5[[#All],[SITE NAME]]").Value .Clear ' Clear all items ' Repopulate with matched items For i = LBound(v, 1) To UBound(v, 1) If LCase(v(i, 1)) […]

使用Excel VBA中的行值填充ComboBox

我无法在单行中填充单元格值的combobox,水平方向。 但是,当它们垂直放置时,它是有效的。 ComboBox.List(“A1:A10”)工作,但ComboBox.List(“A1:J1”)不。 它只显示后一种情况下的第一个值。 如果有人能帮助我,我将不胜感激。 谢谢 :)

VBA存储string,而不是范围在ListFillRange ActiveXcombobox

我已经研究,但一直无法find是否有可能在ActiveXcombobox中存储一个string,而不是一个范围。 我的工作簿有这么多的依赖关系,每当用户input任何types的公式时,都会重新计算ComboBox等等。 我已经粘贴了基于公式的范围内的值,这有助于和closures计算无济于事。 任何指导表示赞赏。 更新 – combobox被绑定,这是设置范围的一个例子。 ThisWorkbook.Worksheets("Securities").OLEObjects("cboList").ListFillRange = "Securities!" & Range("mySecurities").Address