VBA - 粘贴特殊值并转置为新工作簿

时间:2015-10-29 13:32:20

标签: vba excel-vba excel

我有一个包含多行的工作簿。我试图一次复制一行选择并粘贴(值和转置)到模板电子表格中。我可以打开空白模板电子表格并选择我要粘贴的数据但是在获取数据以粘贴值和转置时遇到问题。我在使用有意义的名称将模板保存到新的地方时也遇到了问题。如果有人能提供一些帮助,我们将不胜感激。请参阅以下代码:

非常感谢您的帮助

 Function CreateIndividualFiles(ash, individualTempPath, individualCompletedPath)

Do While ash.Cells(8 + n, 2) <> ""

    Dim xl0 As New Excel.Application
    Dim xlw As New Excel.Workbook

    Set xlw = xl0.Workbooks.Open(individualTempPath)

    ash.Range(Cells(8 + n, 2), Cells(8 + n, 49)).Select
    Selection.Copy

    xl0.Worksheets.Add

    xl0.ActiveSheet.Cells(6, 5).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=True

    xl0.Workbook.SaveAs sFilePath + "\Split\" & DeptDirName & "\" & departmentName & "\" & DeptFileName, fileFormat:=51


    xlw.Close

    Set xl0 = Nothing
    Set xlw = Nothing


n = n + 1

Loop


End Function

1 个答案:

答案 0 :(得分:0)

据我所知,你不能同时粘贴值和转贴特殊粘贴。我使用以下内容来完成此任务:

Sub trnspEquat()
    For i = 1 To Selection.Rows.count
        For j = 1 To Selection.Columns.count
            ActiveCell.Offset(j - 1, Selection.Columns.count + i).value = Selection.cells.(i, j).value
        Next j
    Next i
End Sub

这将为您提供一个开始,它目前将值放在现有数据旁边。我会让你把它换成另一张纸。

之前每个人都开始大吼大叫使用Selection和ActiveCell。这背后的想法是突出显示一个范围然后使用分配给该宏的击键,数据被转置。