- ベストアンサー
vbaでオブジェクトエラー発生!なぜ?
- vbaを使用して、ユーザーフォームとテキストボックスを組み合わせたフィルタリング処理を行っています。しかし、オブジェクトエラーが発生しています。なぜエラーが発生するのでしょうか?
- また、他にも改善点がありましたら指摘していただけると幸いです。
- ご協力をお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
・UserForm1のスペルミス間違い ・Criteria1のスペルミス こういう公のところに質問するのだから、スペルミスぐらい早く気づいてよ。 実行すると、それらの箇所に黄色指摘が出るでしょう。 == それに、私ならこうする案を以下に。 全般の流れが理解できてないのでは? その全般の流れの説明がなされていないが、根本はそこにあるはず。 ーー ・ユーザーフォームを1つ設ける ・そこにテキストボックスを2つとコマンドボタンを1つ設ける (2つのテキストボックスに数字を入れて、コマンドボタンをクリックする仕組み) ・コマンドボタンのクリックイベントに Private Sub CommandButton1_Click() MsgBox (UserForm1.TextBox1.Text) MsgBox (UserForm1.TextBox2.Text) 集計開始 End Sub ーー 標準モジュールに 下記はデータがSheet1のA,B列にありA1:B15 (下記のように質問を改作) データ例 項目 数量 a1 11 a2 12 a3 13 a4 14 a5 15 a6 16 a7 17 a8 18 a9 19 a10 20 a11 21 a12 22 a13 23 a14 24 ーーー Sub 集計開始() Dim drng As Range Dim kara As String, made As String Dim cnt As Long Set drng = Range("A1").CurrentRegion drng.AutoFilter 'MsgBox drng.Address kara = Val(UserForm1.TextBox1.Text) made = Val(UserForm1.TextBox2.Text) If kara <> "" And made = "" Then drng.Worksheets("Sheet1").AutoFilter Field:=2, Criteria1:=">=" & kara ElseIf kara = "" And made <> "" Then drng.Worksheets("Sheet1").AutoFilter Field:=2, Criteria1:="<=" & made ElseIf kara <> "" And made <> "" Then drng.AutoFilter Field:=2, Criteria1:=">=" & kara, Operator:=xlAnd, Criteria2:="<=" & made Else MsgBox "数字を入力してください" End If Exit Sub End Sub ーー 時間が掛かって、「から」「まで」を両方とも入れるケースしかテストしてない、後免。
その他の回答 (1)
- MT765
- ベストアンサー率57% (2080/3618)
ちょっとずれた回答ですがユーザーフォーム名デフォルトで使ってらっしゃるならValの後ろusetform1となっておりますがUserForm1ではないでしょうか。
お礼
ありがとうございます! 修正しましたら、また別のエラーで動きませんでした。
お礼
丁寧に教えていただきありがとうございました!