申し訳ありません。超初心者です。
ユーザーフォーム内に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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) ワークシート内を検索 1 2022/12/19 23:46
- Visual Basic(VBA) ユーザーフォームの表示を追加したい 2 2023/03/26 23:18
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
- Visual Basic(VBA) VBAで日付入力しているのですが 4 2023/03/02 11:25
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
- Excel(エクセル) vba 転記するときの最終行について 2 2022/09/03 09:31
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
Excelにて、ユーザーフォームで、日付けの範囲を指定し、検索しデーターを抽出し 別シートへ転記した
Excel(エクセル)
-
エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい
Visual Basic(VBA)
-
-
4
エクセルVBA テキストボックスへのセットフォーカスについて
Visual Basic(VBA)
-
5
(VBAにて)日付でデータを抽出するやり方
Excel(エクセル)
-
6
ユーザーフォームに入力したデータを保持する方法
Visual Basic(VBA)
-
7
Excel VBAのリストボックスの値を他のフォームに反映させる方法を教えてください。
Visual Basic(VBA)
-
8
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
9
excelのリストボックスで選択した項目をアクティブセルに入力方法
Excel(エクセル)
-
10
マクロ実行時、ユーザーフォームにラベルのテキストが表示されません。
Access(アクセス)
-
11
【Excel VBA】ユーザーフォームで選択した複数条件に一致するデータ行を削除
Excel(エクセル)
-
12
エクセルVBA テキストボックス検索
Excel(エクセル)
-
13
エクセルVBA「リストボックスで選択した値をテキストボックスで変更してシート上セルに反映したい」
Excel(エクセル)
-
14
Excel にて、 リストボックスのデーターを別ブックのセルに転記するVBAをご教授願います
Excel(エクセル)
-
15
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
16
VBA リストボックス(複数条件)で検索し、転記方法についてご教示ください。
Visual Basic(VBA)
-
17
VBA フォームのテキストボックスにセルの値を表示させたいが改行していたら改行もあわせて表示させたい
Excel(エクセル)
-
18
VBA リストボックス内の値を複数選択し別シートに転記するには
Visual Basic(VBA)
-
19
Excel VBA 複数選択したリストボックスからテキストボックスに転記したいです。
Visual Basic(VBA)
-
20
Excel VBA ユーザーフォーム1のコンボボックスに別ブックの値を反映させたいです。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelのINDEXとMATCH関数でスピ...
-
array関数で格納した配列の型を...
-
Excelのセルの色指定をVBAから...
-
エクセルで、絶対値の平均を算...
-
16進数から2進数へ
-
VBA listBoxについて
-
C#でFontStyleの列挙体に値を追...
-
フォームから値の取得(BinaryR...
-
[エクセル]連続する指定範囲か...
-
DataSetから、DataTableを取得...
-
表にフィルターをかけ、絞った...
-
Excelのオートフィルタで抽出し...
-
配列のSession格納、及び取得方...
-
VBA 配列に格納した値の平均の...
-
ショッピングカートの合計金額...
-
Excel VBA 配列の分割について
-
MFC コンボボックスを複数扱う
-
数字配列データを画像に変換す...
-
VBAでの100万行以上のデータの...
-
スプレットシートのGetTextにつ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelのセルの色指定をVBAから...
-
ExcelのINDEXとMATCH関数でスピ...
-
array関数で格納した配列の型を...
-
[エクセル]連続する指定範囲か...
-
表にフィルターをかけ、絞った...
-
VBA listBoxについて
-
エクセルで、絶対値の平均を算...
-
配列がとびとびである場合の書き方
-
DataSetから、DataTableを取得...
-
[VBA]改行入りのセルの値を配列...
-
VBA 配列に格納した値の平均の...
-
配列のSession格納、及び取得方...
-
【VBA】ユーザーフォーム リス...
-
エクセルでエラーを無視して一...
-
SUMPRODUCT関数を用いた最小値
-
Excel VBA 配列の分割について
-
Excelのオートフィルタで抽出し...
-
VB6.0 ファイルの一括読込み
-
Excel オートフィルタのリスト...
-
VBAで指定期間の範囲を抽出し、...
おすすめ情報