前提・実現したいこと
縦23列、横52行の表があり、1行余白を作り最初にn回縦にコピー。
nの回数はinputで入力できる形式にする予定です。
次にn回縦にコピーされた最終行を求め、1列余白を作り右側にコピーしたいと思っています。
イメージとしてはA1からV52*nの最終行を求めてコピーするイメージです。
追記
縦23列、横52行の表には複数個数式が入っています。
それを消さずにコピーペーストを行いたいです。
発生している問題・エラーメッセージ
縦のコピーが現状どうにもならない形です。
そもそもforでいけるのかという疑問も出てきます
実行時エラー438 オブジェクトは、このプロパティまたはメソッドをサポートしていません。
該当のソースコード
vba
1Sub prot() 2 3 '人数を入力 4 Dim math As Long 5 math = InputBox("人数を入力してください") 6 7 8 '表のコピー 9 Set D = Range("A1:W52") 10 D.Select 11 Selection.Copy 12 13 '縦コピー 14 C = 53 15 For j = 1 To math Step 53 16 Worksheets(1).Range("A" & C) = D.Paste 17 C = C + 53 18 Next j 19 20 cel_cnt = 53 21 MaxCol = Worksheets(1).Cells(Rows.Count, 23).End(xlUp).Row 22 23 For i = 1 To MaxCol Step 53 24 Worksheets(1).Range("A1" & ":" & "W" & cel_cnt).Copy Worksheets(1).Range("X1" & ":" & "AS" & cel_cnt) 25 Next i 26 27 MsgBox "ok" 28End Sub
試したこと
Rangeオブジェクトを取り除いてみましたが、結果的にダメでした。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/10 08:09
退会済みユーザー
2021/02/10 08:50
2021/02/10 09:24
退会済みユーザー
2021/02/10 09:41