[[20220228120300]] 『ステートメントを複数使用した場合』(あい) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ステートメントを複数使用した場合』(あい)

昨日質問させていただいた者です。
回答していただいた方々、ありがとうございました。
回答が溜まってしまったので改めて質問させていただきます。

以下のコードでエラーが出てしまいます。
ステートメントを複数使う際は注意が必要だということだったのですが、
あまりまだよくつかめていません・・・

Dim a As Long, i As Long

           ★1 For a = 2 To Sheets("record").Cells(Sheets("record").Rows.Count, 1).End(xlUp).row 
               ☆1 If Sheets("record").Cells(a, 14).Value = "" Then   
                    ☆2 If 伝票画面.Label2 = Sheets("record").Cells(a, 7).Value Then  
                     Else
           ★1 Next a
                        With 伝票画面.ListBox1
                               ★2 For i = 16 To 90 Step 4
                                .AddItem "" 
                                .List(.ListCount - 1, 0) = Sheets("record").Cells(2, i)
                                .List(.ListCount - 1, 1) = Sheets("record").Cells(2, i + 2)
                                .List(.ListCount - 1, 2) = Sheets("record").Cells(2, i + 3) 
                                ★2Next i
                        End With
                   ☆ End If
               ☆2 End If
            ★2 Next a

この書き方は間違っているでしょうか、、?
For to...
with...
end with
next
や、
For to
if
end if
next
などもでしょうか…
初心者すぎて申し訳ありません・・・・・

< 使用 Excel:unknown、使用 OS:Windows10 >


冒頭にある
For a = 2 To Sheets("record").Cells(Sheets("record").Rows.Count, 1).End(xlUp).row
はどこまでを繰り返すのですか?
Next a が 2か所にありますが。
(γ) 2022/02/28(月) 12:25

そもそもされたいことを日本語で説明してもらえますか?

(γ) 2022/02/28(月) 12:29


伝票画面.Label2 が Sheets("record").Cells(a, 7).Value に一致したときはどうするんですか?
何もしないのですか?
それなら、
   If 伝票画面.Label2 <> Sheets("record").Cells(a, 7).Value Then
     すぐ下にやりたいことを書く。

と明確に書いたほうがよいと思いますよ。
   If 伝票画面.Label2 = Sheets("record").Cells(a, 7).Value Then
   Else
   ・・・
という書き方は不自然だと思います。

  =======
いずれにしても、Forに対する Nextが二つあったりするのはNGです。
基本をしっかり納得するまで抑えてください。頑張ってください。
(γ) 2022/02/28(月) 13:08

そもそも、何のためにNext〜とかEnd〜という行が必要なのか理解していますか?
(傘) 2022/02/28(月) 13:32

 こっちに移ったのですか? 別スレッドを立ち上げる必要はなかったとおもいますが、

 今、必要な For ... Next 、 If ... End 、 If  With ... End With
 に絞ってかんがえましょう

 まず、 これらのステートメントを使うときは、
 はじめのキーワードと終わりのキーワードは、必ず一緒に書きましょう
 たとえば、For とNextは1行開けて、最初に書いちゃう

 For a = 2 To Sheets("record").Cells(Sheets("record").Rows.Count, 1).End(xlUp).row 

 Next a
 こうなります。で、この中にインデントで一段さげて、書き始めます。
 If キーワード書いたら、それとセットのEnd If キーワードも一緒に書きます。
 For a = 2 To Sheets("record").Cells(Sheets("record").Rows.Count, 1).End(xlUp).row 
    If Sheets("record").Cells(a, 14).Value = "" Then   

     End if
 Next a
 こうなります。Elseも 追加します。
 For a = 2 To Sheets("record").Cells(Sheets("record").Rows.Count, 1).End(xlUp).row 
    If Sheets("record").Cells(a, 14).Value = "" Then   

     Else

     End if
 Next a
 というように、必ず始まりと終わりをセットで書いて、
 その中をインデント付きで埋めるようにするといいです。

 根本を理解すれば、難しいことではないですが、
 理解できてないならインスタントに形式的にできるやり方もありです
(´・ω・`) 2022/02/28(月) 13:59

[[20220227162258]] 『For to next コードでエラーがでます』(あい)
 どっちで話をすすめるか整理してください。
(´・ω・`) 2022/02/28(月) 14:03

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.