Tag: combobox

停止combobox向下箭头自动select

我在Excel中有一个ActiveX控件combobox,它将filter按string键入的string列表,然后用户select他/她正在search的项目。 我希望combobox允许input一个字符,让用户能够使用键盘上的向下和向上箭头扫描下拉菜单中的项目列表。 但是,当用户使用向下箭头键时,下拉列表中的第一个项目被选中,然后是唯一剩下的项目。 此外,我希望能够在下拉列表中使用滚轮(如果可能的话),并具有列表sorting,以便在am,inputam,首先显示以a开头的项目。 请让我知道,如果有什么我可以做,以避免这种行为。 这是combobox的代码: Private Sub Worksheet_SelectionChangePrior(ByVal Target As Range) cLstPrior = Application.Transpose(Database.UsedRange.Columns(1)) 'set module-level variable Tool.priorCmb.List = cLstPrior 'initialize ComboBox to range Col A (UsedRange only) Tool.priorCmb.ListIndex = -1 'set ComboBox value to empty End Sub Private Sub priorCmb_Change() filterComboListPrior Tool.priorCmb, cLstPrior End Sub Private Sub priorCmb_KeyPress(ByVal keyAscii As MSForms.ReturnInteger) Tool.priorCmb.DropDown End […]

combobox下拉列表只能触发每一个其他框

在MS Excel 2010中,我有一系列combobox在用户窗体中。我有_enter事件分配给每个调用.DropDown,所以当我通过框选项卡,他们将自动打开下拉窗口。 这对第一个很好,但是当我select下一个时,它不起作用。 _enter事件触发(使用msgbox进行testing),但不会下降。 下面的框会下降,但不是那个之后的框。 如果你倒退,同样的事情发生在相反的。 如果我把它们之间的虚拟文本框按Tab键顺序排列,它们都会下降。 任何想法如何解决这一问题? 我也试过使用KeyUp – > Ascii 9(tab),结果相同。

用户窗体combobox只取第一个值 – Excel VBA

我有一个用户表单,其中包含一个combobox。 combobox填充了来自dynamic命名范围“List1”的值..每一件事情都很好..当我从列表中select第一个值的作品,我可以完成我的任务..但是当我从列表中select另一个值该值消失,combobox值变为空。这里是代码: Private Sub ComboBox1_Change() ComboBox1.RowSource = "'[" & ActiveWorkbook.Name & "]DATA'!List1" ComboBox1.DropDown Worksheets("TEMP").Range("A3").Value = ComboBox1.Value End Sub 谁能给我一个解决scheme,请.. 更新:我按照本教程中的说明..但我做一个用户窗体中: http : //trumpexcel.com/2013/10/excel-drop-down-list-with-search-suggestions

从一个模块中的集合获取值到userform中的combobox中

我有一个工作表,数据在“EGM”列中。 我的代码保存在该列中的值在集合中。 如果集合中只有一个值,则variablessSelectedEGM等于此值。 但是,如果有多个值,用户应该有可能只select一个值(我想在combobox中做到这一点),并将选定的项目保存到variablessSelectedEGM。 我的问题是,我不能从这个集合的值到userform。 当我的代码进入使用状态时,出现“types不匹配”的错误。 我在工作表中的代码: Public sSelectedEGM As String Public vElement As Variant Public cEGMList As New VBA.Collection Sub kolekcjaproba() ' =================================== ' LOOP THROUGH EGMS AND WRITE THEM INTO COLLECTION ' =================================== Dim iOpenedFileFirstEGMRow As Integer Dim iOpenedFileLastEGMRow As Integer Dim iOpenedFileEGMColumn As Integer Dim iOpenedFileEGMRow As Integer Dim sOpenedFileEGMName As String […]

不能在Excel中使用多个combobox

我已经为220个网站列表制作了两个活动的Xcombobox。 在制作活动的xcombobox之前,我制作了一张表格,用于search我的数据,并查找与我正在input的内容相匹配的网站。 然后,我使用名称pipe理,引用列表中的第一个单元格中的公式 =Sheet1!$G$2:INDEX(Sheet1!$G$2:$G$220,COUNTIF(Sheet1!$G$2:$G$220,"?*")) 然后,我已经在我的combobox的属性中的ListFillRange中写了这个。 它适用于一个,但一旦我做了第二个,并select了网站,第一个将不再让我通过search。 我已经使用了相同的公式,但他们来自不同的工作表,看看这是否解决了这个问题,但不成功。 (这些盒子在不同的纸张上)当我在第一张纸上使用方框后点击下一张纸时,它仍然显示它的一部分,就好像它正在崩溃。 这些箱子是独立的,所以我不知道下一步该怎么做,因为我需要在单独的工作表上添加另外3个。 我也为每个盒子使用这个代码 Private Sub ComboBox1_Change() ComboBox1.ListFillRange = "MList" Me.ComboBox1.DropDown End Sub 和另一个button类似,但范围不同。

VBA迭代地设置variables

我试图find最好的方法,让我的comboboxselect(在我的用户表单中)是他们所代表的实际数字的“别名”。 例如,如果用户在combobox中select“A”,则表示4.0。 我试图find一种方法来迭代地设置我的variables,所以我不必重复相同的select案例代码9次(对于我的9个combobox,我想要做这样的事情:我想要GradeBox( GradeBox_0,GradeBox_1等) For i = 0 To GRADE_BOX_COUNT Select Case GradeBox_0.ListIndex Case 0 Grades(i) = 4 Case 1 Grades(i) = 3.7 Case 2 Grades(i) = 3.3 Case 3 Grades(i) = 3 Case 4 Grades(i) = 2.7 Case 5 Grades(i) = 2.3 Case 6 Grades(i) = 2 Case 7 Grades(i) = 1.7 Case 8 […]

在初始化和更改其他combobox上设置combobox值

(编辑:为了澄清,我正在运行Excel 2013,所以微软的dateselect器不可用。) 我正在尝试编写一个简单的dateselect器 – 完成后它会更加整洁,在创build它时它只是一个简单的大事件,而且一切都应该如此: Me.Combo_Year.List = wsLU.Range("Date_Years").Value Me.Combo_Month.List = wsLU.Range("Date_Months").Value Me.Combo_Day.List = wsLU.Range("Date_Days31").Value 但是,有两种情况我想为年,月和日combobox设置默认值。 对于我使用旋转button的时候,简单的.Value语句将它们设置为_Initialize 12中午。 但是,也没有.Text为combobox工作: Me.Combo_Year.Text = Year(Now()) ' Doesn't work Me.Combo_Month.Text = Month(Now()) ' Doesn't work Me.Combo_Day.Text = Day(Now()) ' Doesn't work Me.Spin_Hour.Value = 12 ' Works fine Me.Spin_Minute.Value = 0 ' Works fine 同样,当我selectdate较less的月份时(例如为了避免返回二月三十一日)而将date设置为较低的值时, .Value和.Text都不再.Text : 有没有办法可靠地设置一个默认值,然后更改代码中的combobox的值? 我错过了一些非常明显的东西吗? 编辑:作为参考,表单的相关部分的完整代码( UpdatePreview只是更新OKbutton上方的预览date)按要求: […]

设置UserFormcombobox的值

(从我的更广泛的问题中缩小在input链接描述在这里 元build议。) 我有一个用户表单。 在那个用户表单上有好几个combobox供年份,月份和dateselect。 根据select年份和月份,每天combobox填充的数字最多为28,29,30或31。 为了避免select像2月31日这样的事情,我想检查选定的date值是否超过了当月的最大值,并适当减less。 目前我已经尝试了这些选项: If Me.Combo_Day.Value > iMaxDate And iMonthNo > 0 And Not Me.Combo_Day.Value = "" Then Me.Combo_Day.Value = Me.Combo_Day.List(iMaxDate – 1) 和 If Me.Combo_Day.Value > iMaxDate And iMonthNo > 0 And Not Me.Combo_Day.Value = "" Then Me.Combo_Day.Value = iMaxDate 他们都没有工作; 任何时候该行被parsing,我得到一个380错误的解释“无法设置值属性。无效的属性值。 我试过改变.Text和.Value ,而且都没有太大区别。 如何更改combobox中的选定值?

Excel VBA:添加数组以形成控件combobox

我有几个文件,我想结合和分析一个结果文件。 其中一个文件包含具有不同名称的样本,这些样本会重复未知次数。 我想从这个文件中提取所有未知名称,并将它们添加到下拉框(Form Control Combobox)中。 为了简化事情,我在新的Excel文件的第一列添加了以下string: string1 string1 string2 string3 string3 string3 string4 string4 为了提取唯一的string,我写了下面这段代码: Sub MakeArrayInDropDown() ' Declare variables Dim myArray() As Variant ' Array with undefined size Dim i As Integer ' Counter for-loop Dim i_UnStr As Integer ' Counter of unique strings Dim i_lastStr As Integer ' Length of strings in column […]

用表格栏填充VBA userform的combobox以及一个附加选项

我正在开发一个应用程序,擅长与VBAforms。 在一种forms中,我有一个combobox让用户select客户名称,这个combobox的行源是一个命名范围(客户名称表的名称列)。 一切工作正常,但我需要添加1或更多的combobox中不存在的表列中的项目。 例如,我需要在cobmobox中添加“全部”项目,以便用户可以select特定的客户名称或全部。 在其他地方,我不想添加“其他”项目在同一个行的combobox,所以如果客户是新用户可以select其他,然后在文本框中键入名称。 我尝试下面的代码来添加一个项目 Private Sub UserForm_Activate() With Me.testCombo .AddItem "All" End With End Sub 但我得到错误运行时错误'70'权限被拒绝 如果我从combobox中删除rowsource属性然后上面的代码工作,但只有一个项目“全部”显示。 注意:我不想在客户表中添加“全部”和“其他”,这可能是简单的解决scheme,但会导致其他问题。