EXCEL VBA:未在组合框中显示完整列表

时间:2016-08-23 15:29:15

标签: excel vba excel-vba combobox

我正在尝试在组合框中提取我桌面上的订阅计划。我能够使它工作,但它只显示5个计划,即使我需要展示49个计划。

Option Explicit
Dim tush As Boolean
Dim ching, i As Long

Private Sub btnFax87_Click()
ching = Worksheets("Subscription").Range("A1").CurrentRegion.Rows.Count
boxSubF.Clear
For i = 2 To ching
boxSubF.AddItem Worksheets("Subscription").Cells(i, 1).Value
Next i
End Sub

以下是我需要在组合框中显示的信息的屏幕截图以及仅显示的信息。没有滚动条或诸如此类的东西。

SUBSCRIPTION PLANS

VALUES IN COMBO BOX

2 个答案:

答案 0 :(得分:1)

对于这样的事情,我总是将它们存储在一张桌子上。 CurrentRegion可能会返回您不期望的范围。尝试做

Worksheets("Subscription").Range("A1").CurrentRegion.Select
<立面窗口中的

,看看有什么亮点。

如果将数据存储在表格中,则可以访问以下范围:

Dim DataRange as Range
Dim ching as Long

Set DataRange = Worksheets("Subscription").ListObjects("Table1").ListColumns(1).DataBodyRange
ching = DataRange.Rows.Count

答案 1 :(得分:0)

在你的照片中,我看到在“A”栏上有一些有效的过滤

这可能使任何空单元格不可见(未过滤),停止 class Repository { public IEnumerable<BaseValue> GetAll() { IEnumerable<BaseValue> values = null; using (SqlConnection cn = new SqlConnection("")) { cn.Open(); const string query = "SELECT Id, TypeName, RawValue, Dimension FROM Values"; values = cn.Query<BaseValue, object, BaseValue>(query, (value, ignore) => { BaseValue child = null; if (value.TypeName == "IntValue") child = new IntValue(value.Id, (int)value.RawValue, value.Dimension); else if (value.TypeName == "BoolValue") child = new BoolValue(value.Id, value.RawValue > 0, value.Dimension); else if (value.TypeName == "FloatValue") child = new FloatValue(value.Id, (float)value.RawValue, value.Dimension); else if (value.TypeName == "TimeSpanValue") child = new TimeSpanValue(value.Id, TimeSpan.FromSeconds(value.RawValue), value.Dimension); else if (value.TypeName == "DateTimeValue") child = new DateTimeValue(value.Id, new DateTime((long)value.RawValue), value.Dimension); return child; }); cn.Close(); } return values; } } 在第一行之前的最后一行

为了防止这种情况发生并且组合框列表中填充了非空白值,只需编写如下代码:

CurrentRegion
相关问题