【发布时间】:2017-12-07 04:04:03
【问题描述】:
我编写了一个宏来根据工作表“ProjList”中的列表创建可变数量的工作表。每张工作表都是在创建时命名的。我正在尝试将某些单元格(A-D 列)中的值从“ProjList”复制到新工作表。我已经使用粘贴命令成功完成了它,但我希望数据转置。
我写过:
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
我得到一个
运行时错误 1004:范围类的 PasteSpecial 方法失败。
第一个工作表已创建,但宏在 PasteSpecial 行失败。
非常感谢任何帮助。
谢谢!
【问题讨论】:
-
请注意:我建议永远不要使用
Integer,除非您知道为什么必须这样做。取而代之的是always useLong,尤其是对于行数。 Excel 的行数超出了Integer的处理能力!