Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在excel vba中从组合框中删除空格,但保留索引_Vba_Excel_Combobox - Fatal编程技术网

在excel vba中从组合框中删除空格,但保留索引

在excel vba中从组合框中删除空格,但保留索引,vba,excel,combobox,Vba,Excel,Combobox,所以我从数据库中提取数据来填充组合框。每个值都作为一个与之相关联的ID,我在组合框中将该ID用作该值的索引。如果ID是2,我就把它放在索引2中。第一个问题是,如果我不在框中填充内容,我使用的是空格,它就不允许我使用索引。因此,如果我没有填充至少10个空格,我就不能在索引10处粘贴ID为10的值。另一个问题是存在差距。因此,如果我输入索引为2,3,5,7,8,10的值,在0,1,4,6,9处有空格。有没有办法去掉空白,但保留索引?非常感谢您的帮助。谢谢 这就是我将值放入组合框的方式。我使用仓库ID

所以我从数据库中提取数据来填充组合框。每个值都作为一个与之相关联的ID,我在组合框中将该ID用作该值的索引。如果ID是2,我就把它放在索引2中。第一个问题是,如果我不在框中填充内容,我使用的是空格,它就不允许我使用索引。因此,如果我没有填充至少10个空格,我就不能在索引10处粘贴ID为10的值。另一个问题是存在差距。因此,如果我输入索引为2,3,5,7,8,10的值,在0,1,4,6,9处有空格。有没有办法去掉空白,但保留索引?非常感谢您的帮助。谢谢

这就是我将值放入组合框的方式。我使用仓库ID作为索引

ComboBox1.AddItem rs![DEPOT_NAME], rs![DEPOT_ID]

您将需要使用一个过渡结构来作为地图或字典

在VBA中创建一个数组,然后在将项分配给组合框时,使用组合框索引记录真实索引。然后,当它被选中时,您可以从数组中拉出索引

我已经很久没有写vba了,所以这可能很可怕

例如


你可能想再读一遍你写的东西,并且试着从读者的角度去读,因为他们对你要做的事情一无所知。如果你是我们中的一员,对问题中的项目一无所知,你能理解这里的问题吗?我当然不能。我认为不可能有一个有缺口的索引。您需要在后台有一个数组或其他东西来将您的索引映射到combobox的索引。
Dim ComboBoxIndexs(100) As Integer 
Dim ArrayIndex as Integer
Dim SelectedIndex as Integer
Dim SelectedDepotID as Integer

'for each combo box item (I can't remember loops in vba)
'allocating to each item
ComboBox1.AddItem rs![DEPOT_NAME], rs![DEPOT_ID]

ComboBoxIndexs(ArrayIndex) = rs![DEPOT_ID]
ArrayIndex = ArrayIndex +1;

'end of for loop.

'When you select an item and want to read it.


 SelectedIndex = Combobox1.Value

 'now get your depot id from array
 SelectedDepotID = ComboBoxIndexs(SelectedIndex)