初学者なため思いつかず… もしかしたら簡単なことかもしれないのですが…
ぜひ知識を与えていただきたいです…!
■やりたいこと
元データC2~4は都度内容が異なり、それを前回Saveした次の位置に転記したい。
100行分使い切ったら元に戻って先頭から上書きさせたい。
(追記)※やりたいことの流れです※
C2,C3,C4に入力→登録→別シートA2,B2,C2へ転記→
C2,C3,C4に入力→登録→別シートA3,B3,C3列へ転記→
C2,C3,C4に入力→登録→別シートA4,B4,C4列へ転記→
・・・
C2,C3,C4に入力→登録→別シートA101,B101,C101列へ転記→
C2,C3,C4に入力→登録→別シートA2,B2,C2列へ転記→
■シートについて
シート"表"とシート"入力"の二枚が存在します。
シート"表":C2,C3,C4に値を入力する欄と登録ボタンがある
シート"入力":セルA2~A101までの転記先となる一覧表がある
空欄チェックとは何者でしょうか?
それが条件なら「やりたいこと」に明記しましょう。
最近の質問者は、転記シートに転記すればいいだけなのに
空欄がどうのこうの記述する方が多いように気がします。
なにか書籍の影響なのでしょうか・・。
空欄チェックはやり方が思いつかず至った結果で、やりたいことではないので全く無視して頂いて大丈夫です…!転記されているかどうかチェックしてされていなければ転記、されていれば次の行へ転記、という思考でこうなりました。
どういった方法があるかぜひご教示頂きたいです…
空欄チェックは多分
If Sheets("表").Range("A" & i).Value = "" Then
のことを言ってるんだと思いますけど。
値がない状態でないと転記にいかないので、
上からやり直した時に上書きできないと言ってるんでしょうね。
ただ今のところは正に説明とソースそのままで、そうなりますよとしか答えようがない。
どういう条件で上書きしたいのかはちゃんと考えをまとめてきてください。
サンプルだと思うのでどうでもいいことだと思いますが、例えば、最終行から始めるとかなら
わかるのですが、空白だったら転記するみたいな適当なサンプルにこれ以上
何を回答すればいいのか・・・という。。。
はじめに戻る意味は?上書きの意味は?
質問にも追記したのですが、伝わりますでしょうか…
C2,C3,C4に入力→登録→別シートA2,B2,C2へ転記→
C2,C3,C4に入力→登録→別シートA3,B3,C3列へ転記→
C2,C3,C4に入力→登録→別シートA4,B4,C4列へ転記→
・・・
C2,C3,C4に入力→登録→別シートA101,B101,C101列へ転記→
C2,C3,C4に入力→登録→別シートA2,B2,C2列へ転記→
同じデータをループで何度も転記する意味がさっぱりわかりません。
元データのC2~4は都度内容が異なり、それを前回Saveした次の位置に転記したいのでは?
それで100行分使い切ったら元に戻って先頭から上書きするのなら、現在のSave位置を保持しておいて、100未満なら+1の行に転記、100ならSave位置をリセットすれば良いです。
条件の書き方が曖昧過ぎです。
ゲームのセーブ情報ですか。
思い付いたこととしては最後に上書きした行数を別途どこかのセルに保存しておいて、
転記毎にその行数を1増やし、101を超えたら1に戻すとかでいいのではないでしょうか。
For i = 2 To 101の「101」はコピー元の最大行値で、("A" & i)が("A" & Fix(i/100)*100+i)で、("C2")が("C" & i)で、どうでしょう。
追記:("C3")が("C" & i+1)、("C4")が("C" & i+2)。これらが固定ならばですけど
追記2:完全に読み違えてました。すいません。コピー元が100越えたら1に戻すものだと。
元データのC2~4は都度内容が異なり、それを前回Saveした次の位置に転記したい
100行分使い切ったら元に戻って先頭から上書き
まさにその通りです;;
それならForループが無用の長物であることは自明ですよね?
質問がわかりにくいなか皆さまアドバイスやヒントをありがとうございます。
全くの初学者ゆえ見様見真似で作成している状況です。色々調べてみてはいるのですが、調べ方も悪いのかもしれません…
最後に上書きした行数を別途セルに保存&転記毎に行数を1増やし101を超えたら1に戻す、という考え方はわかるのですが、どう記述したらよいかわからず…