タイトル通り、エクセルVBAにてシート1のA2セル以降のA列にずらっとリストを作成し、それを元にシート2を原本としたシートをリスト名分複製・その時シート名は各リストの名前とし、生成したシートのF9セルにもリスト名を入力したいです。
今現在のVBAのコードは以下になります
Name=リストにした各セルの名前
シート1=リストがあるシート
シート2=複製したい原本シート。これのF9にもシート1のNameを代入したい
Sub Name_to_Make()
Dim Name As Range
For Each Name In Worksheets("シート1").Range("A2:A52")
Worksheets("シート2").Copy After:=Worksheets(Worksheets.count)
With ActiveSheet
.Name = Name.Value
.Range("F9)=シート2.Value
Endwith
Next Name
End Sub
このコードで上手くいくことは確認できたのですが、現在リストのA2からA52を見ていますが、
この長さを可変としたいのです(都度リストのName数が違う)
しかし、今のコードだと強制的にA52迄見てしまうため、必ずエラーメッセージと共に要らない”シート2(2)”も生成されてしまいます。
ここを可変にする為の(エラーにならない)コードが知りたいのですが、どう書けば良いのか分かりません。
調べてみたところ、IfやDo Loopを使用するのかな、とは思うのですがそれらの引数などの指定が上手くいかずエラーになってしまいます。。。
どなたかご教示いただければと思います、よろしくお願い致します。
※また、リストそのものも元となる一覧から必要なNameのみチェックし、それをA列に出力し、その上でこのコードを走らせることは可能でしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/21 06:51