
申し訳ありません。超初心者です。
ユーザーフォーム内にTextBoxを2つ作り、指定日を入れます。(検索ボックス5、検索ボックス6を作ったと過程)
検索ボタンを押すと指定期間のデータをリストボックスに表示させたいのですがどのように書けばよいかご教示ください。
下記コードは途中まででギブアップ状態です。
Private Sub 検索_Click()
'検索を実行します。部分一致検索。
Dim lastrow As Long
Dim myData, myData2()
Dim i As Long, cn As Long
'検索対象がない場合の警告
If 検索ボックス.Text & 検索ボックス2.Text & 検索ボックス3.Text & 検索ボックス4.Text = "" Then
MsgBox "検索対象を入力してください。"
Exit Sub
End If
'検索するデータを配列 myData に格納。
With Worksheets("名簿")
lastrow = .Cells(Rows.Count, 1).End(xlUp).Row
myData = .Range(.Cells(1, 1), .Cells(lastrow, 6)).Value
End With
'配列 myData の中で検索で一致したデータを配列 myData2 に格納しています。
ReDim myData2(1 To lastrow, 1 To 6)
For i = LBound(myData) To UBound(myData)
If myData(i, 1) Like "*" & 検索ボックス.Value & "*" Then
If myData(i, 2) Like "*" & 検索ボックス2.Value & "*" Then
If myData(i, 3) Like "*" & 検索ボックス3.Value & "*" Then
If myData(i, 4) Like "*" & 検索ボックス4.Value & "*" Then
cn = cn + 1
myData2(cn, 1) = myData(i, 1)
myData2(cn, 2) = myData(i, 2)
myData2(cn, 3) = myData(i, 3)
myData2(cn, 4) = myData(i, 4)
End If
End If
End If
End If
Next i
'検索で一致したデータをリストボックスに表示。
With ListBox1
.ColumnCount = 6
.ColumnWidths = "70;50;200;80;190;100"
.List = myData2

No.2ベストアンサー
- 回答日時:
こんばんは
>指定日を入れます。(検索ボックス5、検索ボックス6を作ったと過程)
ご提示のコードには、検索ボックス5、6って見当たらないけれど??
比較する対象が、データのどこにあるのかも不明ですし・・・
想像するところ、どこかに日にちのデータがあって、それが「指定期間内のものだけをピックアップ」したいってなことなのかも知れないけれど。
日にちの比較はシリアル値で行うのが簡単です。
一方で、テキストボックスの入力値は文字列で取得されますので・・
・日付であることのチェックを行うのなら、IsDate 関数を利用すれば良いでしょう。
・文字列をシリアル値に変換するには、DateValue 関数を利用すれば良いでしょう。
・データの値が文字列なのかシリアル値なのか不明ですが、扱いは同様です。
以上の準備処理を事前にしておいて、
データのフィルターに
開始日 <= 日付データ <= 終了日
を追加すればよいものと思われます。
※ 想像に基づく回答なので、当たるも八卦ですけれど・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
確定申告しなかった・無申告の人をどうやって見つけるのか元国税調査官に聞いてみた
無申告の方などを対象に税務調査を行う国税局の元税務調査官さんに、どう無申告を探すのか聞いてきました。
-
VBA リストボックスをダブルクリックしデータを修正したいのですが…。
Visual Basic(VBA)
-
Excel VBAでフォルダ内の全テキストファイルの任意データを取得について
Visual Basic(VBA)
-
VBAの質問です msg = ws.Cells(r, A").Value & "日に" & ws."
Visual Basic(VBA)
-
4
VBA教えてください!
Visual Basic(VBA)
-
5
このプログラムがわかりません
Visual Basic(VBA)
-
6
VBAでtxtファイルを読み込む際にtabを認識したい
Visual Basic(VBA)
-
7
リストボックスについて
Excel(エクセル)
-
8
VBA。リストボックスの値を別のユーザーフォームのテキストボックスに反映したい。
Access(アクセス)
-
9
VBA RemoveDuplicatesで「アプリケーション定義またはオブジェクト定義のエラーです」
Visual Basic(VBA)
-
10
エクセルでカレンダーマクロの作成について
Visual Basic(VBA)
-
11
Excelマクロのコードができる方に質問します。
Visual Basic(VBA)
-
12
VBAのコードについて
Visual Basic(VBA)
-
13
処理の呼び出し方
Visual Basic(VBA)
-
14
excel VBA ユーザーフォームを消すとTextBoxから反映させたセルの値も戻ってしまう
Excel(エクセル)
-
15
エクセルのマクロ設定について教えてください。
その他(Microsoft Office)
-
16
excel VBA 部分一致の名前をパスに指定する方法
Excel(エクセル)
-
17
【Excel VBA】シートの中から特定の文字列のセル位置を取得するには?
Visual Basic(VBA)
-
18
【VBA】ユーザーフォームを使った検索フォームについて
Visual Basic(VBA)
-
19
EXCELのVBAでやりたいことがあります
その他(Microsoft Office)
-
20
vbsでファイルを非表示
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
Accessで該当データにフラグを...
-
5
エクセルで2つの時系列のデー...
-
6
二分探索の平均探索回数
-
7
GridViewの行の一部を複数行にする
-
8
EXCELVBAでSQLserverからデータ...
-
9
パースとはなんですか?
-
10
多量のSUMIF式を軽くしたい
-
11
ActiveReportについて
-
12
VBAを使ってOutlookメール本文...
-
13
エクセルで1次近似をもとめたい
-
14
EXCELでsheet1のデータをsheet2...
-
15
C++ 音のリアルタイム処理
-
16
Excel vbaで、一行ずつコピーし...
-
17
EXCEL VBA FREQUENCY関数での...
-
18
Fortran カンマを含む数値デー...
-
19
【パソコントラブルを解決した...
-
20
【プログラミング】スクラッチ...
おすすめ情報
公式facebook
公式twitter