[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ステートメントを複数使用した場合』(あい)
昨日質問させていただいた者です。
回答していただいた方々、ありがとうございました。
回答が溜まってしまったので改めて質問させていただきます。
以下のコードでエラーが出てしまいます。
ステートメントを複数使う際は注意が必要だということだったのですが、
あまりまだよくつかめていません・・・
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 >
(γ) 2022/02/28(月) 12:29
と明確に書いたほうがよいと思いますよ。
If 伝票画面.Label2 = Sheets("record").Cells(a, 7).Value Then
Else
・・・
という書き方は不自然だと思います。
======= いずれにしても、Forに対する Nextが二つあったりするのはNGです。 基本をしっかり納得するまで抑えてください。頑張ってください。 (γ) 2022/02/28(月) 13:08
こっちに移ったのですか? 別スレッドを立ち上げる必要はなかったとおもいますが、
今、必要な 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
どっちで話をすすめるか整理してください。 (´・ω・`) 2022/02/28(月) 14:03
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.