ワークシート "ProjList"のリストに基づいて可変数のワークシートを作成するためのマクロを作成しました。各シートは作成時に名前が付けられます。私はいくつかのセル(列A〜D)の値を "ProjList"から新しいシートにコピーしようとしています。私はペーストコマンドを使って正常に処理しましたが、データを転置します。PasteSpecial Transposeに関する問題
私が書いた:
Sub AddWorkSheets()
Dim RowNumb As Long
Dim LastRow As Integer
LastRow = Worksheets("ProjList").Cells(Worksheets("ProjList").Rows.Count, "D").End(xlUp).Row
For RowNumb = 2 To LastRow
Sheets("ProjList").Activate
Worksheets("ProjList").Range("A" & RowNumb, "D" & RowNumb).Copy
Sheets.Add
ActiveSheet.Name = Worksheets("ProjList").Cells(RowNumb, 4).Value
ActiveSheet.Move After:=Sheets(ActiveWorkbook.Sheets.Count)
ActiveSheet.Range("D1").PasteSpecial Paste:=xlPasteValues, transpose:=True
Next RowNumb
End Sub
を私は
を取得RunTime Error 1004: PasteSpecial method of range class failed.
最初のワークシートが作成されますが、マクロはPasteSpecial
ラインで失敗します。
ご迷惑をおかけして申し訳ありません。
ありがとうございます!
だけ注意を:あなたがする必要があるなぜあなたが知っている限り、私は 'Integer'を使用することを決してお勧めしません。代わりに(特に 'Long'を使用してください)(https://stackoverflow.com/a/26409520/3219613)、行数に特に注意してください。 Excelは 'Integer'よりも多くの行を扱えます! –