0

StackOverflow と Excel/VBA は初めてです。最初に、私の問題を解決するために Google の調査を行いましたが、適切な説明がありませんでした。お役に立てば幸いです。

私の問題:

リストボックスに入力する A3:V100 のワークシート範囲があります。今、ワークシートで記録されたマクロをオートフィルターで使用し、それらのマクロをユーザーフォームのボタンに追加していますが、結果が行 5、行 35、行 40 になる可能性があるため、範囲が正しくありません。データ行全体ではなく、フィルタリングされた行に対してのみリストボックスの範囲を設定するにはどうすればよいですか。

私の現在の範囲コード:

    Sub populateListbox1()

With ListBox1

    .ColumnHeads = True
    .ColumnCount = 30
    .ColumnWidths = "30;30;50;50;60;50;50;50;50;50;50;50;50;0;0;0;0;0;0;0;50;50;0;0;0;0;0;0;0;0"
    .RowSource = Sheet1.Range("A6", Range("AD" & Rows.Count).End(xlUp)).Address
End With

End Sub

私は尋ねている:

オートフィルターを適用したときに、rowSource 範囲の正しいコードを誰かに教えてもらえますか。または、誰かが私のリストボックスをフィルタリングする他のアイデアを持っていますか?

前もって感謝します!

4

1 に答える 1

0

これを行う方法が見つかった場合。

「Go to special」「Visible cells only」を使用して結果を選択し、それらの値を別のシートにコピーします。これらの手順をマクロとして記録しました。

結局のところ、他のリストボックスと同じようにリストボックスにデータを入力します。

于 2013-03-13T09:16:34.233 に答える