2016-07-20 5 views
0

私は3つのリストボックスを持っています。プロパティでは、ListStyleをfmListStyleOption、MultiSelectをfmMultiSelectMultiとして選択しました。空のリストボックスの値

実際に値を持つセルのリストボックスにのみデータが表示されるように、動的名前付き範囲を使用しています。残念ながら、それはとにかにチェックボックス付きの長い空白行のリストを示しています。

リストボックスに値のあるデータのみが表示されるようにする方法を知っている人は誰でも、つまり名前付き範囲にデータがあるセルが2つある場合、リストボックスには2つのチェックボックスしかありません。

Visual

+0

?それは私の最後に期待どおりに動作します。 – L42

+0

hmmm ... = OFFSET( 'プロパティデータ'!$ A $ 5,2、COUNTA( 'プロパティデータ'!$ A $ 5:$ N $ 5)、14) –

+0

これで、使用された細胞。 –

答えて

0

簡単に、なぜこれがあなたの範囲から配列を作成し、Listbox.Listプロパティに配列を割り当てることであろうことができません。これにより、SpecialCellsを使用してデータをフィルタリングすることができます。

Private Sub Userform_Initialize() 

    Me.lstProperties.List = getArrayFromRange(Range("FilterData").SpecialCells(xlCellTypeVisible)) 

    Me.lstStmts.List = getArrayFromRange(Range("ListofProps").SpecialCells(xlCellTypeConstants)) 

    Me.lstLoans.RowSource = getArrayFromRange(Range("FilterLoans").SpecialCells(xlCellTypeConstants)) 

End Sub 

Function getArrayFromRange(rng As Range) 
    Dim arr 
    Dim a As Range 
    Dim count As Long, x As Long, y As Integer 

    ReDim arr(1 To rng.CountLarge, 1 To rng.Columns.count) 

    For Each a In rng.Areas 

     For x = 1 To a.Rows.count 

      count = count + 1 

      For y = 1 To rng.Columns.count 
       arr(count, y) = a.Cells(x, y).Value 
      Next 

     Next 
    Next 

    getArrayFromRange = arr 
End Function 
0

ダイナミックな名前付き範囲が正しく設定されていないという問題がありました。名前付き範囲のための式がされている必要があります:

=OFFSET('Property Data'!$A$5,2,,COUNTA('Property Data'!$A$5),14) 

ない:

=OFFSET('Property Data'!$A$5,2,,COUNTA('Property Data'!$A$5:N$5),14). 
あなたのダイナミックレンジを設定するにはどうすればよい
関連する問題