我有一个包含多行的工作簿。我试图一次复制一行选择并粘贴(值和转置)到模板电子表格中。我可以打开空白模板电子表格并选择我要粘贴的数据但是在获取数据以粘贴值和转置时遇到问题。我在使用有意义的名称将模板保存到新的地方时也遇到了问题。如果有人能提供一些帮助,我们将不胜感激。请参阅以下代码:
非常感谢您的帮助
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
答案 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。这背后的想法是突出显示一个范围然后使用分配给该宏的击键,数据被转置。