如何复制范围并粘贴到 1 列
How to Copy Range And Paste in 1 Column
任何人都有想法在 Excel 中使用 VBA 制作类似的东西。请...
Range (D2 : M4)
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
仅粘贴在 1 列 B 或范围 (B3 : B33) 上,如下所示:
1
2
3
4
5
6
7
....etc
30
试试下面的代码。它会起作用
Sub test()
Dim i As Long
For i = 2 To 4
If i = 2 Then
Sheets("Sheet3").Range("D" & i, "M" & i).Copy
Sheets("Sheet3").Range("B3").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
Else
Sheets("Sheet3").Range("D" & i, "M" & i).Copy
Sheets("Sheet3").Range("B" & Sheets("Sheet3").Range("B" & Rows.Count).End(xlUp).Row + 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
End If
Next i
End Sub
如果您只需要粘贴值
Sub main()
Dim i As Long
Dim cell As Range
For Each cell In Range("D2:M4")
Range("B3").Offset(i).Value = cell.Value
i = i + 1
Next cell
End Sub
如果需要粘贴"all"单元格
Sub main()
Dim i As Long
Dim cell As Range
For Each cell In Range("D2:M4")
cell.Copy Destination:=Range("B3").Offset(i)
i = i + 1
Next cell
End Sub
我看到你有一个可接受的答案,但这里有一个使用公式 TRANSPOSE:
的替代解决方案
Sub TransposeData()
Dim Data As Range, iRow&, RowData&, ColData&
Set Data = Worksheets("Sheet1").Range("D2:M4")
RowData = Data.Rows.Count: ColData = Data.Columns.Count
For iRow = 1 To RowData
Range("B" & 3 + (iRow - 1) * ColData).Resize(ColData, 1) = WorksheetFunction.Transpose(Data.Rows(iRow))
Next
End Sub
请注意,它只是复制粘贴值,不包括其格式。
任何人都有想法在 Excel 中使用 VBA 制作类似的东西。请...
Range (D2 : M4)
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
仅粘贴在 1 列 B 或范围 (B3 : B33) 上,如下所示:
1
2
3
4
5
6
7
....etc
30
试试下面的代码。它会起作用
Sub test()
Dim i As Long
For i = 2 To 4
If i = 2 Then
Sheets("Sheet3").Range("D" & i, "M" & i).Copy
Sheets("Sheet3").Range("B3").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
Else
Sheets("Sheet3").Range("D" & i, "M" & i).Copy
Sheets("Sheet3").Range("B" & Sheets("Sheet3").Range("B" & Rows.Count).End(xlUp).Row + 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
End If
Next i
End Sub
如果您只需要粘贴值
Sub main()
Dim i As Long
Dim cell As Range
For Each cell In Range("D2:M4")
Range("B3").Offset(i).Value = cell.Value
i = i + 1
Next cell
End Sub
如果需要粘贴"all"单元格
Sub main()
Dim i As Long
Dim cell As Range
For Each cell In Range("D2:M4")
cell.Copy Destination:=Range("B3").Offset(i)
i = i + 1
Next cell
End Sub
我看到你有一个可接受的答案,但这里有一个使用公式 TRANSPOSE:
的替代解决方案Sub TransposeData()
Dim Data As Range, iRow&, RowData&, ColData&
Set Data = Worksheets("Sheet1").Range("D2:M4")
RowData = Data.Rows.Count: ColData = Data.Columns.Count
For iRow = 1 To RowData
Range("B" & 3 + (iRow - 1) * ColData).Resize(ColData, 1) = WorksheetFunction.Transpose(Data.Rows(iRow))
Next
End Sub
请注意,它只是复制粘贴值,不包括其格式。