我正在将数据从一个工作表复制到另一个工作表,使用宏进行转置和自动填充,但我想创建一个循环并让它始终选择下一个单元格(" A8"&&#34 ; B8")在上一个工作表(MF2)中被复制而不必手动更改单元格。这是我使用
的宏Sub Test1()
Sheets("MF2").Select
Range("A8").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Sheet3").Select
Columns("A").Find("", Cells(Rows.Count, "A")).Select
ActiveSheet.Paste
Sheets("MF2").Select
Range("B8").Select
Range(Selection, Selection.End(xlToRight)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Sheet3").Select
Columns("B").Find("", Cells(Rows.Count, "B")).Select
ActiveCell.Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Dim endRow As Long
endRow = Cells(Rows.Count, "B").End(xlUp).Row
Range("A1").End(xlDown).Select
ActiveCell.AutoFill Destination:=Range(ActiveCell.Address & ":A" & endRow)
Range("C1").End(xlDown).Select
ActiveCell.AutoFill Destination:=Range(ActiveCell.Address & ":C" & endRow)
End Sub
答案 0 :(得分:0)
有几件事。首先,不要激活并选择所有内容。使用变量存储对源和目标的引用。其次,Range.Copy
采用可选的目标参数。你可以一举复制和粘贴。这是代码。
Sub Test2()
Dim sourceSheet As Worksheet
Set sourceSheet = Sheets("MF2")
Dim sourceRange As Range
Set sourceRange = sourceSheet.Range("A8")
Dim destSheet As Worksheet
Set destSheet = Sheets("Sheet3")
Dim destRange As Range
With destSheet
Set destRange = .Columns(1).Find("", .Cells(.Rows.Count, 1))
End With
sourceRange.Copy destRange
End Sub
是的,我知道这完全没有回答你的任何问题。