プロが教える店舗&オフィスのセキュリティ対策術

Excel VBA Forの使い方について

独学でやっていますので不格好ご了承下さい。
写真を添付しましたが、
ksnの文字を17,19行のAセルに入れて、
kshの数の分、行が増えていくに応じて、
ksnの文字が入る様にしたいのですが、
ksnの1番目の文字は転記されますが、
2番目からが入りません。
ご教授お願いします。

「Excel VBA Forの使い方につい」の質問画像

質問者からの補足コメント

  • ありがとうございます。
    やってみましたが、変化がありませんでした(; ;)
    でもヒントになったので、頑張ってみます。

      補足日時:2020/09/10 12:08
  • 書き直してみました!

    「Excel VBA Forの使い方につい」の補足画像2
      補足日時:2020/09/10 12:46

A 回答 (4件)

17,1 19,1 夫々1はiでしょ。

    • good
    • 0
この回答へのお礼

助かりました

ありがとうございました!
やりかたが悪かったのか変化がありませんでした。
でもヒントになったので頑張ってみます。

お礼日時:2020/09/10 12:10

kshとksnは同じ Worksheets("リスト").Range("D1") を参照しているの?


単に、そこが「1」だからってことではなく?
ksnとkshを間違っているとか、iの値を書き込みたいとか、そういう勘違いはありませんか?

1番目の文字が

この内容だと、
kshの数だけ以下の処理を繰り返す
|17:20行をコピーする。
|21行目以降に挿入する。
| A17、A19にksnの値を入れる。

実際の挙動は

1巡目
17:20行をコピーする。
21行目以降に挿入する。
A17、A19にksnの値を入れる。

2巡目以降
A17、A19にksnの値が入っている、17:20行をコピーする。
21行目以降に挿入する。
A17、A19にksnの値を入れる。(1巡目で入力済みなので無意味だけど)

と続くので、実行前の17:20行が最初に21行以下に退避された後に
値を書き込む処理が走る感じですね。

実際に、実行前、実行後の状態イメージを出してもらうとココが違うよってすぐ回答できる方も多いと思いますよ。

独学で解決を試みたいのであれば…

コードの左側の余白部分をクリックして●マークを付ける。
マクロを実行すると、●のところで停止します。
[F8]キーを押すと、1行ごとに処理が進みます。
[F5]キーで残りの処理を進めます。

シートが見える状態で、コレを活用すれば、どこに間違いがあるか気付けると思います。
「Excel VBA Forの使い方につい」の回答画像2
    • good
    • 0
この回答へのお礼

あなたに会えてよかった

いつも丁寧に教えて頂いてありがとうございますm_ _m
写真の写り方が悪かった様です。すみません!
kshはE1になります。
おっしゃる通りksnのあたいを入れようとしてます。
書きかえてみましたが、ksnの文字は全部のセルに入ってくれるようになりましたが、
やっぱり2セル目の文字が反映してくれません。
ksn = ksn + 1しても入りません; ;
補足に書きます…

お礼日時:2020/09/10 12:44

ssf.Cells(17,1).value=i


ssf.Cells(19,1).value=i
なんでしょ?
    • good
    • 0
この回答へのお礼

ありがとう

ご教授ありがとうございます!
やってみましたが望む結果にはなりませんでした。
不格好な式なので、お詳しい方には逆に困惑させてしまってたらすみません。

お礼日時:2020/09/10 13:05

端的に言って、A17とA19のセルには何を入れたいのですか??

    • good
    • 0
この回答へのお礼

ksnの値です。

4行の行をコピーして、kshの値分、
4行ずつ増えていくようにしてますが、
ksnの最初の値はA17,A19に入りますが、
次の値がA21,A23に入りません; ;
次の行の次の値が次の行に入ってくれません。

お礼日時:2020/09/10 13:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!