[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『「ステートメントの最後」の表記』(超初心者)
超初歩的な質問ですいません。
Dim i string
Dim k string
For i = 6 To 11 k = 4 to 8
と記載しているのですが、k = 4 to 8 部分に「ステートメントの最後」のエラーがでます。
○to×を複数宣言することはできないのでしょうか?
< 使用 Excel:Excel2016mac、使用 OS:Windows10 >
で、 k = 4 to 8 これは何を意味するのか説明しないでエラーが出ると言うのでしょうか? (BJ) 2020/04/21(火) 14:12
Dim k As Long Dim s As String Dim fname As String Dim i As String
Application.ScreenUpdating = False For k = 6 To 11 i = 4 to 8 s = Cells(4, k).Value If s <> "" Then fname = ThisWorkbook.Path & _ "\" & _ Format(s) & _ Cells(5, k).Value Worksheets(i + 1).Copy ActiveWorkbook.SaveAs _ FileFormat:=xlOpenXMLWorkbook, _ Filename:=fname ActiveWorkbook.Close End If Next Application.ScreenUpdating = True
すいません、iとkが逆でした。
sheets(4)〜sheets(8)のうち、データが反映しているシートのみ、別ファイルで個別に名前をつけて保存したいです。
(超初心者) 2020/04/21(火) 14:26
ですから、
>i = 4 to 8
これが何を意図したものか解らないと言っているんです。 他のコードを見る気はないです。
(BJ) 2020/04/21(火) 14:31
>i = 4 to 8 >シート4〜8を指定したいものです >Worksheets(i + 1).Copy
上記3つのつながりが見えません。 (BJ) 2020/04/21(火) 14:42
>i = 4 to 8 >Worksheets(i + 1).Copy のコードでやりたいことが実行できていたので、それをコピペしています。
>sheets(4)〜sheets(8)のうち、データが反映しているシートのみ、別ファイルで個別に名前をつけて保存したいです。
これが実現できるコードを教えていただけないでしょうか。
(超初心者) 2020/04/21(火) 14:50
なんかぶつかっったけど、↓的な??
for i = 4 to 8
for k = 6 to 11 s = Sheets(i).Cells(4, k).Value If s <> "" Then
(BJ) 2020/04/21(火) 14:57
??
>Dim i string (OK) 2020/04/21(火) 15:06
>>i = 4 to 8 >>Worksheets(i + 1).Copy >のコードでやりたいことが実行できていたので、それをコピペしています。
本当ですか? 2007だと、i = 4 to 8 で、コンパイルエラーなんだけど。
>型が一致しませんでした
すみません。 意味が良く解りません。
他の回答者の返答を待った方が良いですね。 (BJ) 2020/04/21(火) 15:07
>○to×を複数宣言することはできないのでしょうか?
To だけじゃなくて
For 変数 = 初期値 To 終了値 Step 増分値 繰り返し処理 Next
と、セットで覚えないといけません。
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/fornext-statement
To は For文の中の1つの要素でしかありません。
なので「○to×を複数宣言」ではなくて、「For文を入れ子にする」と考えます。 BJさんがすでに書いてますね。
言語は、文法どおりにしか解釈されないので、自己流で書いてもエラーになるだけです。 (´・ω・`) 2020/04/21(火) 15:31
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.