【问题标题】:Trouble with PasteSpecial TransposePasteSpecial 转置问题
【发布时间】: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 use Long,尤其是对于行数。 Excel 的行数超出了Integer 的处理能力!

标签: vba excel


【解决方案1】:

试试这个:

ActiveSheet.Range("D1").Resize(, 4).PasteSpecial Paste:=xlPasteValues, transpose:=True

试试下面的代码:

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
        Sheets.Add
        ActiveSheet.Name = Worksheets("ProjList").Cells(RowNumb, 4).Value
        ActiveSheet.Move After:=Sheets(ActiveWorkbook.Sheets.Count)
        ActiveSheet.Range("D1").Resize(, 4) = Application.WorksheetFunction.Transpose(Worksheets("ProjList").Range("A" & RowNumb, "D" & RowNumb))
    Next RowNumb
End Sub

【讨论】:

  • 嗨 Atik,我试过了,但得到了同样的错误: Range 类的 PasteSpecial 方法失败。
  • 它确实创建了工作表,并且确实选择了四个单元格 (D1:G1) 的范围,但没有成功粘贴任何内容。
  • 您好 Atik,非常感谢您为此付出的努力。我输入了编辑后的代码,它运行了宏。它确实创建了四个电子表格并正确命名,但在第一个新工作表上,它在单元格 D1:G1 中放置了一个“1”;第二个工作表上的单元格 D1:G1 中的“2”等。不知何故,转置部分不起作用,也没有将“ProjList”中的信息放入新工作表中......
  • 请添加您的工作表的图像,您要复制的表格和粘贴的位置?
  • 对不起 - 已经查看了如何附加图像但无法弄清楚如何做到这一点。我已经准备好截图了...
猜你喜欢
  • 1970-01-01
  • 2021-07-25
  • 2013-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-13
相关资源
最近更新 更多