![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
VBA初心者です。
ネットで見つけたやりたい動きのコードをアレンジしました。
コンボで選ぶのは、2列目で数値型の値です。
myCri = myData(UserForm1.ComboBox1.ListIndex + 2, 1)
のところで、型が違うとエラーがでます。
ネットで元々あったサンプルは文字列型のstringでした。そこをintgerに変えました。
どこが悪いかご教授の程宜しくお願い致します。
'CommandButton1でオートフィルターでデータを抽出します
Private Sub CommandButton1_Click()
Dim myFld As String, myCri As Integer
Dim myRow As Long
Dim Sh2 As Worksheet, Sh3 As Worksheet
Dim lRow As Long
Dim myData
'コンボボックスで何も選択されていないときの処理
If UserForm1.ComboBox1.ListIndex < 0 Then
MsgBox "処理月を選択してください"
Exit Sub
End If
Set Sh2 = Worksheets("1_蓄積データ更新")
Set Sh3 = Worksheets("対象月データ")
myFld = 2 '2列目をキーとする
'コンボボックスで選択している月を変数myCriに読み込み、キーとする
myCri = myData(UserForm1.ComboBox1.ListIndex + 2, 1)
'オートフィルターでデータを抽出する
With Sh2
.Range("A1").AutoFilter Field:=myFld, Criteria1:=myCri
myRow = .Range("A" & Rows.Count).End(xlUp).Row
'抽出先のSh3をクリアする
Sh3.Range("A:O").ClearContents
'抽出データをSh3へコピー&貼り付けする
.Range("A1:O" & myRow).Copy Sh3.Range("A1")
.Range("A1").AutoFilter
End With
Sh3.Activate
Range("A1").Select
End Sub
No.3ベストアンサー
- 回答日時:
myDataの値を設定しているコードが見当たらないようですが・・・。
宣言「Dim myData」をこのプロシジャ内で定義しているので、当然、値の設定もこのプロシジャ内で行う必要があると思うのですが、それが無いです。
「月曜日出勤したときにやってみます」とのことですが、そんな局所的なレベルではないと思います。
自宅でしっかりした調べしておかないと上司に怒られちゃいますよ。
Private Sub UserForm_Initialize()
Dim lRow As Long
Dim i As Long, myCnt As Long
Dim myData
With Worksheets("Sheet2")
lRow = .Range("A" & Rows.Count).End(xlUp).Row
myData = .Range("A2:A" & lRow).Value
End With
With ComboBox1
.List = myData
End With
End Sub
途中省略
'商品名リストを配列myDataに読み込む
With Worksheets("Sheet2")
lRow = .Range("A" & Rows.Count).End(xlUp).Row
myData = .Range("A2:A" & lRow).Value
End With
Set Sh2 = Worksheets("1_蓄積データ更新")
Set Sh3 = Worksheets("対象月データ")
myFld = 2 '2列目をキーとする
'コンボボックスで選択している商品名を変数myCriに読み込み、キーとする
myCri = myData(UserForm1.ComboBox1.ListIndex + 1, 1)
以下省略
これで思い通りの結果がでました。
ご指導、ありがとうございました。
VBA初心者で、ネットで見つけたコートをまねただけでしたが何とか目途が付きました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) Sheet2の日付をキーにオートフィルターで2023年1月のデータを抽出し、Sheet3へ書き出すた 2 2023/03/06 23:57
- Visual Basic(VBA) Sheet1をフィルターで「りんご」を抽出し、Sheet2へ地域を貼り付ける下記マクロを変更して S 2 2022/12/11 03:01
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) Sheet3から2つの条件でオートフィルターで抽出した個数をSheet2へ入力するマクロで、一つ目の 4 2023/01/12 23:40
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
コンボボックスとオートフィルタの連動
Visual Basic(VBA)
-
VBAコンボボックスで選択した値をシートに転記したい
Visual Basic(VBA)
-
エクセルVBA ユーザーフォームのTextBoxを日付にしたい
Excel(エクセル)
-
-
4
ExcelVBA コンボボックスに入力があったらリンクしてテキストボックスを更新したい
Access(アクセス)
-
5
【Excel VBA】コンボボックスで選択した値の取得
Excel(エクセル)
-
6
Excel VBA ユーザーフォーム1のコンボボックスに別ブックの値を反映させたいです。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
白血球が多いとどんな心配があ...
-
彼女のことが好きすぎて彼女の...
-
勃起する時って痛いんですか? ...
-
これって喉仏ですか? 私は女性...
-
検便についてです。 便は取れた...
-
精子が黄色?
-
至急!尿検査前日にオナニーし...
-
Excelで""で囲む方法
-
エクセル指定した範囲からラン...
-
風俗店へ行く前のご飯
-
EXCELで条件付き書式で空白セル...
-
値が入っているときだけ計算結...
-
甲状腺が腫れているが血液検査...
-
2つの数値のうち、数値が小さい...
-
エクセルのラベルの値(文字列...
-
筋トレするとチンコが縮んじゃ...
-
【Excelで「正弦波」のグラフを...
-
excelのIF関数 A,Bの大きいほ...
-
精子に血が・・・
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
至急!尿検査前日にオナニーし...
-
白血球が多いとどんな心配があ...
-
尿検査前日に自慰行為した時の...
-
検便についてです。 便は取れた...
-
彼女のことが好きすぎて彼女の...
-
腕を見たら黄色くなってる部分...
-
勃起する時って痛いんですか? ...
-
尿検査の前日は自慰控えたほう...
-
精子が黄色?
-
中出しをするとお腹が痛い・・・。
-
EXCELで条件付き書式で空白セル...
-
口の中に黒い血の塊
-
これって喉仏ですか? 私は女性...
-
2つの数値のうち、数値が小さい...
-
納豆食べた後の尿の納豆臭は何故?
-
EXCELで式からグラフを描くには?
-
小数点以下を繰り上げたものを...
-
excelでsin二乗のやり方を教え...
-
エクセル指定した範囲からラン...
おすすめ情報
ListIndex + 2 なぜ + 2
すみません。
質問欄への入力ミスで、
ListIndex + 1, 1)で、実行してのエラーです。
宜しくお願い致します。
すみません。
デバックのやり方も知らないので、月曜日出勤したときにやってみます。
会社のデータで、持ち帰りもできないので、自宅で下調べしておりました。