我有以下代码,目前有效,但不显示我想要的方式。我是VBA的新手,所以我在网上使用了这个模板。
它制作了一张名为" Archive"然后将我在其他40张纸上的所有数据打印到它上面。问题在于它从上到下读取。
Public Sub m()
Dim lRow As Long
Dim sh As Worksheet
Dim shArc As Worksheet
Set shArc = ThisWorkbook.Worksheets("Archive")
For Each sh In ThisWorkbook.Worksheets
Select Case sh.Name
Case Is <> "Archive"
lRow = shArc.Range("A" & Rows.Count).End(xlUp).Row
sh.Range("B1:M247").Copy
_Destination:=shArc.Range("A" & lRow)
End Select
Next
Set shArc = Nothing
Set sh = Nothing
End Sub
我希望宏粘贴数据,以便从左到右读取数据。
TLDR:代码收集数据,但全部垂直粘贴。我希望它水平粘贴。任何人都可以改变它吗?
答案 0 :(得分:1)
所以我尝试了更多的东西并编辑了之前的一个回复。这似乎适用于我的目的
Public Sub m()
Dim lCol As Long
Dim sh As Worksheet
Dim shArc As Worksheet
Set shArc = ThisWorkbook.Worksheets("Archive")
For Each sh In ThisWorkbook.Worksheets
Select Case sh.Name
'do nothing
Case Else
lCol = shArc.Cells(1, shArc.Columns.Count).End(xlToLeft).Column
sh.Range("B1:M247").Copy _
Destination:=shArc.Cells(1, lCol + 13)
End Select
Next
Set shArc = Nothing
Set sh = Nothing
End Sub