エクセルvbaについての質問です。 ユーザーフォームにて過去の履歴データから範囲指定された日付でソートしてリストボックスに表示させるものを作成しようと考えています。 ソートを実行するコードをコマンドボタンに配置したのですが、2回クリックしないと表示されません。 AutoFiterを使用しているため、フィルタをかける、外すを交互に行なってしまってこのようになっているのかなと思っているのですがこのような場合どのように改善すればいいのでしょうか? 以下コードです。お見苦しい部分も多いかと思いますがご指導よろしくお願いします。 If IsDate(TextBox1.Text) Then If IsDate(TextBox2.Text) Then Date1 = Format(TextBox1.Text, "yyyy/mm/dd") Date2 = Format(TextBox2.Text, "yyyy/mm/dd") Else MsgBox "日付が認識できません。" End If End If 最下段 = Workbooks("不具合物品.xlsx").Sheets("不具合物品").Cells(Rows.Count, 1).End(xlUp).Row d = DateDiff("d", Date1, Date2) If d < 0 Then MsgBox "範囲の指定が正しくありません。" Else With Workbooks("不具合物品.xlsx").Sheets("不具合物品") .Range("A:F").AutoFilter 1, ">=" & Date1, xlAnd, "<=" & Date2 End With a = Workbooks("不具合物品.xlsx").Sheets("不具合物品").Range("A1:F" & 最下段) With ListBox1 .ColumnCount = 6 .ColumnWidths = "70;300;150;150;300;300" .List = a End With End If
Visual Basic