我需要将数据从第8行复制到另一个工作表(工作表2)。我只需要复制其他单元格,它应该从所有单元格IK8中复制单元格C8(值所在的第一个单元格)、E8、G8、I8等等。
有没有办法做到这一点?我已经在for循环中尝试了step函数,但它不起作用,并且只选择一个cell.It仅为单元格H2:H130粘贴一个值。
Sub Workplace()
Dim rng As Range
Dim LastRow As Long
Dim I As Long
LastRow = Worksheets("Questions").Range("C" & Rows.Count).End(xlUp).Row
For I = 8 To LastRow Step 3
Set rng = Worksheets("Questions").Range("C" & I)
rng.Copy
Next I
Worksheets("Sheet1").Range("H2:H130").PasteSpecial Transpose:=True
End Sub发布于 2020-03-05 03:12:45
您需要递增列,而不是行。
并在循环内移动粘贴,但需要递增目标单元格。
For i = 3 to 245 Step 2 ' column C to column IK
Set rng = Worksheets("Questions").Cells(8, i)
With Worksheets("Sheet1")
Dim dest as Range
Set dest = .Range("H" & .Rows.Count).End(xlUp).Offset(1)
End With
rng.copy Destination:=dest
Next或者更好的做法是,只需使用Union构建一个范围,然后在一个步骤中进行复制:
For i = 3 to 245 Step 2 ' column C to column IK
If rng Is Nothing Then
Set rng = Worksheets("Questions").Cells(8, i)
Else
Set rng = Union(rng, Worksheets("Questions").Cells(8, i))
End If
Next
rng.Copy
Worksheets("Sheet1").Range("H2").PasteSpecial Transpose:=True
Application.CutCopyMode = False编辑
“有没有办法把它粘贴到工作表1的第H行的第一个空单元格中,而不是给它一个范围?”
是的,如下所示:
Worksheets("Sheet1").Range("H" & Rows.Count).End(xlUp).Offset(1).PasteSpecial Transpose:=Truehttps://stackoverflow.com/questions/60533128
复制相似问题