我正在努力用VBA构建我的第一个有用的文档,并且大部分时间我都可以插上电源,直到获得想要的功能为止,但是我遇到了麻烦。
我想在UserForm中的ComboBox行项目中添加一个包含“ B”列中的信息和“ i”列中的信息的表。
基本上,“ B”列包含任务,而“ i”列包含截止日期。当用户打开我的组合框的下拉菜单时,我希望每行显示任务名称和截止日期,这样重复的任务就不会引起混淆。
我已经尝试了六种方法,但是我看到了一个又一个错误。
我怀疑我需要构建一个数组,一个listobject或其他东西,但是当我尝试这样做时,所有东西仍然坏了。
这是我第一次尝试的非功能性潜艇。有人可以告诉我该怎么做吗?
let color = {
r: 255,
g: 255,
b: 0,
}
<div style={color}>asdf</div>
答案 0 :(得分:1)
NumElements = range(range("b8"), range("b8").End(xlDown)).Rows.Count
为您提供该列中的元素数量,从B8开始直到第一个空单元格上方。
对于下拉菜单,您可以选择单列组合框或多(2)列组合框。我建议使用2列版本,它并不比单列复杂得多。您可以分两步填充combox:将值填充到数组中,然后将数组加载到组合框中。 (您选择的解决方案也不错,但是我更喜欢这种方式,因为它更易于调试。)
2列版本:
Dim arr(), i As Long
Redim arr(1 to NumElements,1 to 2)
For i=1 to NumElements
arr(i,1)=cells(7+i,2) ' column B
arr(i,2)=cells(7+i,9) ' column I
Next
Me.Combo_Task_Select = arr
完成。请记住在表单设计器中设置列数属性。或者,您可以使用Me.Combo_Task_Select.ColumnCount=2
单列版本:您需要从2个单元格中生成一个字符串值,如下所示:
Redim arr(1 to NumElements)
For i=1 to NumElements
arr(i)=Left(cells(7+i,2) & worksheetFunction.rept(" ",10), 10) & cstr(cells(7+i,9))
next
根据任务的最大长度调整“ 10”。