VBA初心者です。
顧客リストを作成しています。
コンボボックスで担当者を選択した場合、下記コードをどう記せば良いかご教示ください。
イメージは担当者A選択時はSheet1を。担当者B選択時はSheet2を選択。担当者CはSheet3を選択みたいに。
Sheet別に顧客データを管理しています。
(※初心者につき可能であればサンプルコードを記していただければありがたいです)
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
Private Sub 検索_Click()
'検索を実行します。部分一致検索。
Dim lastrow As Long
Dim myData, myData2(), myno
Dim i As Long, j As Long, cn As Long
Dim DateFrom As String
Dim DateTo As String
'検索対象がない場合の警告
If 検索ボックス.Text & 検索ボックス2.Text & 検索ボックス3.Text & 検索ボックス4.Text & 検索ボックス5.Text & 検索ボックス6.Text & 検索ボックス7.Text & 検索ボックス8.Text = "" Then
MsgBox "検索対象を入力してください。"
Exit Sub
End If
'検索するデータを配列 myData に格納。
With Worksheets("sheet1")
lastrow = .Cells(Rows.Count, 1).End(xlUp).Row
myData = .Range(.Cells(1, 1), .Cells(lastrow, 11)).Value
End With
'配列 myData の中で検索で一致したデータを配列 myData2 に格納しています。
ReDim myData2(1 To lastrow, 1 To 11)
For i = LBound(myData) To UBound(myData)
If myData(i, 4) Like "*" & 検索ボックス.Value & "*" Then
If myData(i, 3) Like "*" & 検索ボックス2.Value & "*" Then
If myData(i, 8) Like "*" & 検索ボックス3.Value & "*" Then
If myData(i, 9) Like "*" & 検索ボックス4.Value & "*" Then
If myData(i, 11) Like "*" & 検索ボックス7.Value & "*" Then
If myData(i, 5) Like "*" & 検索ボックス8.Value & "*" Then
If myData(i, 2) >= DateFrom And _
myData(i, 2) <= DateTo 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)
myData2(cn, 5) = myData(i, 5)
myData2(cn, 6) = myData(i, 6)
myData2(cn, 7) = myData(i, 7)
myData2(cn, 8) = myData(i, 8)
myData2(cn, 9) = myData(i, 9)
myData2(cn, 10) = myData(i, 10)
myData2(cn, 11) = myData(i, 11)
End If
End If
End If
End If
End If
End If
End If
Next i
'検索で一致したデータをリストボックスに表示。
With ListBox1
.ColumnCount = 11
.ColumnWidths = "0;70;200;80;190;100;70;230;80;80;90"
.List = myData2
If .List(0, 1) = "" Then
MsgBox "該当者がいません"
End If
End With
End Sub
No.1ベストアンサー
- 回答日時:
Dim SH As Object
With Me.ComboBox?
If .ListIndex = -1 Then
MsgBox ("Please Selected rep")
Exit Sub
End If
Select Case .List(.ListIndex)
Case "A": Set SH = Sheet1
Case "B": Set SH = Sheet2
Case "C": Set SH = Sheet3
Case Else
Exit Sub
End Select
End With
'検索するデータを配列 myData に格納。
With SH
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) ユーザーフォームの表示を追加したい 2 2023/03/26 23:18
- Visual Basic(VBA) VBAで日付入力しているのですが 4 2023/03/02 11:25
- Visual Basic(VBA) ワークシート内を検索 1 2022/12/19 23:46
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
pl/sqlの配列indexについて は...
-
ExcelのINDEXとMATCH関数でスピ...
-
Excelのセルの色指定をVBAから...
-
array関数で格納した配列の型を...
-
iniファイルのキーと値を取得す...
-
エクセルで、絶対値の平均を算...
-
表にフィルターをかけ、絞った...
-
For Nextマクロの高速化につい...
-
エクセルでエラーを無視して一...
-
VBA 配列に格納した値の平均の...
-
Datatableへの代入
-
配列がとびとびである場合の書き方
-
[エクセル]連続する指定範囲か...
-
Split関数でLong配列に格納する...
-
【C#】二次元配列へのcsvファイ...
-
エクセル 条件を指定した標準...
-
別シートに表示した項目の行以...
-
Dictionaryを使い4つの条件の一...
-
【VBA】ユーザーフォーム リス...
-
FileListBoxでの複数ファイル選択
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelのセルの色指定をVBAから...
-
ExcelのINDEXとMATCH関数でスピ...
-
[エクセル]連続する指定範囲か...
-
array関数で格納した配列の型を...
-
表にフィルターをかけ、絞った...
-
エクセルで、絶対値の平均を算...
-
配列がとびとびである場合の書き方
-
[VBA]改行入りのセルの値を配列...
-
Excel オートフィルタのリスト...
-
DataSetから、DataTableを取得...
-
iniファイルのキーと値を取得す...
-
配列のSession格納、及び取得方...
-
エクセルでエラーを無視して一...
-
Dictionaryを使い4つの条件の一...
-
エクセル 条件を指定した標準...
-
読み込みで一行おきに配列に格納
-
For Nextマクロの高速化につい...
-
.NET - 配列変数を省略可能の引...
-
SUMPRODUCT関数を用いた最小値
-
VB6.0 ファイルの一括読込み
おすすめ情報