Excel VBA将递增的值添加到组合框中
|我想知道如何通过值的增量将组合框的项目列表从一个值填充到另一个值? 我现在的做法是通过以下方式手动完成:Excel VBA将递增的值添加到组合框中,excel,vba,combobox,Excel,Vba,Combobox,|我想知道如何通过值的增量将组合框的项目列表从一个值填充到另一个值? 我现在的做法是通过以下方式手动完成: LowerFilmWidth_ComboBox.AddItem "300" 在本例中,我尝试以1的增量将值从300添加到650 请有人分享一下这样做的代码好吗?请尝试下一个代码: Sub AddIncrementedNrCombo() Dim i As Long, arr(350) For i = 300 To 650 arr(i - 300)
LowerFilmWidth_ComboBox.AddItem "300"
在本例中,我尝试以1的增量将值从300添加到650
请有人分享一下这样做的代码好吗?请尝试下一个代码:
Sub AddIncrementedNrCombo()
Dim i As Long, arr(350)
For i = 300 To 650
arr(i - 300) = i
Next i
LowerFilmWidth_ComboBox.list = arr
End Sub
编辑:
允许以不同增量递增的版本:
Sub AddIncrementedNrCombo()
Dim i As Long, arr(350), k As Long, inc As Long
inc = 10 'it can be calculated
For i = 300 To 650 Step inc
arr(k) = i: k = k + 1
Next i
ReDim Preserve arr(k - 1)
LowerFilmWidth_ComboBox.list = arr
End Sub
编辑2:
如果你想变得花哨,你可以使用以下方法:
LowerFilmWidth_ComboBox.List = [Row(300:650)]
但是为了将来的参考,您应该了解for循环,默认情况下,您可以在指定的间隔1中单步执行
For x = 300 To 650 'Step 1
LowerFilmWidth_ComboBox.AddItem x
Next
嘿,谢谢,在我尝试这个之前,有一个简单的问题,可以用实际增量来定义它吗?我知道350是个数字entries@Eduards字体是的,但我必须更好地理解你的意思。。。例如,它应该从10到10加载数字吗?是的,如果我需要数字之间的间隔=10或者可能是5,如果它被定义为最小到最大值,增量=value@Eduards:编辑后更新的代码是什么意思?inc变量可以以任何方式计算。如果需要修改增量之间的值,可以,也可以修改。你需要这样的代码吗?再次编辑并为这样一个案例放置了一个版本…它很有效,谢谢我很喜欢:D,谢谢第一个代码非常有效!第二个,我可以用在需要增量的地方,不是1,而是5或10。谢谢,伙计!然而,它有一个问题。我正在使用这个组合框中选择的值来做一些数学计算,似乎excel并没有像在使用时那样对待这个添加的值additem@Eduards,你能通过一个例子来解释以上内容吗?这样人们就可以重现你的经历?如果你觉得这是一个单独的问题,你可以为人们打开一个新的问题来回答。我只是想让人们知道,如果值是通过.List添加的,那么它们不能用于数学运算,但是如果值是通过.additem添加的,那么确实可以用于带值的数学运算。如果在等式中变量被设置为组合框值,因为我不能,但无论如何。。。现在一切都好了
For x = 300 To 650 'Step 1
LowerFilmWidth_ComboBox.AddItem x
Next