请帮助我使用宏来将文本从输入表(工作表1)复制并粘贴到同一个Excel文件中的报告表(工作表2)。
输入表格格式:
名称 - 单元格J5
Date-cell J6
启动时间单元格J7
结束时间 - 单元格J8
停机时间 - 单元格J9
我需要一个宏来复制J5:J9并使用转置功能将其粘贴到A2:E2中。 此外,工作表与多个用户共享,因此需要将其粘贴到“报告”表(工作表2)中的最后一个可用行中。
目前,我使用以下宏代码:
Sub Report()
Sheets("Input").Select
Range("J5:J9").Select
Selection.Copy
Sheets("Reports").Select
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
Sheets("Input").Select
ActiveWindow.SmallScroll Down:=-5
Sheets("Input").Select
Range("J5:J9").Select
Selection.ClearContents
End Sub
我在" ActiveCell.Offset(1,0)收到错误。选择"在运行宏时。
请告知代码的任何更改,以帮助我解决问题。
由于
答案 0 :(得分:1)
你可以用几行重写你正在做的所有事情:
Sub Report()
' Copy the range from J5:J9 on INPUT worksheet
ThisWorkbook.Worksheets("Input").Range("J5:J9").Copy
With ThisWorkbook.Worksheets("Reports")
' Find the LAST ROW in COLUMN A
Dim lROW As Long: lROW = .Cells(.Rows.Count, 1).End(xlUp).Row
' Paste in cell A-lROW with transpose
.Range("A" & lROW).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, Transpose:=True
End With
' Clear entry in original INPUT sheet
ThisWorkbook.Worksheets("Input").Range("J5:J9").ClearContents
End Sub
我不确定你为什么会因偏移一行而出错,这对我有用 - 但这可能与你“选择”最后一行的方法有关