スプレッドシート自体の4つのドロップダウンリストの内容を評価する一連のIf
ステートメントを実行するコードを作成しようとしています。VBAの複数IF ELSE
しかし、私は選択肢の多くをしようとしたにもかかわらず取り除くように見えることはできません
場合、私はちょうど終了せずに
ブロックIFを言ってエラーが出るの下のコードを使用するとき。
ここでコードの長さをお詫びしますが、達成しようとしていることを説明する必要があると感じます。
Sub GOClick() Worksheets("Dashboard").Select If Worksheets("Dashboard").Range("B3") = "National Gallery" And Worksheets("Dashboard").Range("B4") = "Unframed" And Worksheets("Dashboard").Range("B7") = "Product Costings" And Worksheets("Dashboard").Range("B5") = "N/A" And Worksheets("Dashboard").Range("B6") = "N/A" Then Worksheets("(7b)").Activate Range("A8:F23").Copy Worksheets("Dashboard").Activate Range("D11").PasteSpecial xlPasteAll Else: If Worksheets("Dashboard").Range("B3") = "N/A" And Worksheets("Dashboard").Range("B4") = "N/A" And Worksheets("Dashboard").Range("B7") = "Product Costings" And Worksheets("Dashboard").Range("B5") = "N/A" And Worksheets("Dashboard").Range("B6") = "Inkjet" Then Worksheets("(1)").Activate Range("A5:G69").Copy Worksheets("Dashboard").Activate Range("D11").PasteSpecial xlPasteAll Else: If Worksheets("Dashboard").Range("B3") = "N/A" And Worksheets("Dashboard").Range("B4") = "N/A" And Worksheets("Dashboard").Range("B7") = "Product Costings" And Worksheets("Dashboard").Range("B5") = "N/A" And Worksheets("Dashboard").Range("B6") = "Xerox" Then Worksheets("(1)").Activate Range("A5:I101").Copy Worksheets("Dashboard").Activate Range("D11").PasteSpecial xlPasteAll Else: If Worksheets("Dashboard").Range("B3") = "Wholesale" And Worksheets("Dashboard").Range("B4") = "Ready to Hang" And Worksheets("Dashboard").Range("B7") = "Product Costings" And Worksheets("Dashboard").Range("B5") = "N/A" And Worksheets("Dashboard").Range("B6") = "N/A" Then Worksheets("(3a)").Activate Range("A5:S105").Copy Worksheets("Dashboard").Activate Range("D11").PasteSpecial xlPasteAll Else: MsgBox ("No Data") End If End Sub
:If'はちょうどあなたがそうでなければ'入れるたびに 'ElseIf' – tigeravatar
を使用する:あなたは' if'なステートメントのネストされたを作成しているIf'、あなたは一つだけ '終わりif'終わる持っているので、プログラムがエラーをスローしているブロックの@ tigeravatarのコメントはこれを修正する必要があります。 – Jarom
また、コードを適切にインデントする方法を学びます。このコードを見て、各ブロックの開始/終了位置を確実に伝えることは不可能です。 [Rubberduck](http://rubberduckvba.com/indentation)がそれを手伝ってくれます。免責事項:私はそのオープンソースのVBEアドインプロジェクトを管理しています。 –