如何复制并粘贴 ob VBA disposed as a matriz?
How do I copy and paste ob VBA disposed as a matriz?
伙计们!
我有一个卡片模板,然后我想创建打印页面,其中有 175 个,每个页面应该有 3x3 个卡片。到目前为止一切顺利,但是我遇到了错误 1004,当我将复制的单元格粘贴到新的 "row" 时,如果我可以说的话。关注代码:
Dim originalWs As Worksheet, ws As Worksheet
Dim wsRowCounter As Long, wsCollumCounter As Long, expansionSize As Long, cardRowSize As Long, cardCollumSize As Long
Dim horizontalCardsPage As Long, verticalCardsPage As Long, i As Long
Set originalWs = ActiveSheet
Set ws = Sheets.Add
wsRowCounter = 1
wsCollumCounter = 1
expansionSize = 175
cardRowSize = 13
cardCollumSize = 4
horizontalCardsPage = 3
verticalCardsPage = 3
originalWs.Activate
For i = 1 To expansionSize
originalWs.Range("C14") = i
originalWs.Range("B2:E14").Select
Selection.Copy
ws.Activate
If wsCollumCounter >= (cardCollumSize * horizontalCardsPage) Then
wsRowCounter = wsRowCounter + cardRowSize
ws.Rows(((wsRowCounter - 1) * verticalCardsPage) + 1).PageBreak = xlPageBreakManual
wsCollumCounter = 1
End If
ws.Cells(wsRowCounter, wsCollumCounter).Activate
ActiveSheet.Paste
wsCollumCounter = wsCollumCounter + cardCollumSize
originalWs.Activate
Next i
我不是 100% 确定这会解决问题,但它确实有助于消除一些歧义和诸如此类的东西:
Dim originalWs As Worksheet, ws As Worksheet
Dim wsRowCounter As Long, wsCollumCounter As Long, expansionSize As Long, cardRowSize As Long, cardCollumSize As Long
Dim horizontalCardsPage As Long, verticalCardsPage As Long, i As Long
Set originalWs = ActiveSheet
Set ws = Sheets.Add
wsRowCounter = 1
wsCollumCounter = 1
expansionSize = 175
cardRowSize = 13
cardCollumSize = 4
horizontalCardsPage = 3
verticalCardsPage = 3
For i = 1 To expansionSize
originalWs.Range("C14") = i
If wsCollumCounter >= (cardCollumSize * horizontalCardsPage) Then
wsRowCounter = wsRowCounter + cardRowSize
ws.Rows(((wsRowCounter - 1) * verticalCardsPage) + 1).PageBreak = xlPageBreakManual
wsCollumCounter = 1
End If
'perform the copy/paste in one line:
originalWs.Range("B2:E14").Copy Destination:=ws.Cells(wsRowCounter, wsCollumCounter)
wsCollumCounter = wsCollumCounter + cardCollumSize
Next i
伙计们!
我有一个卡片模板,然后我想创建打印页面,其中有 175 个,每个页面应该有 3x3 个卡片。到目前为止一切顺利,但是我遇到了错误 1004,当我将复制的单元格粘贴到新的 "row" 时,如果我可以说的话。关注代码:
Dim originalWs As Worksheet, ws As Worksheet
Dim wsRowCounter As Long, wsCollumCounter As Long, expansionSize As Long, cardRowSize As Long, cardCollumSize As Long
Dim horizontalCardsPage As Long, verticalCardsPage As Long, i As Long
Set originalWs = ActiveSheet
Set ws = Sheets.Add
wsRowCounter = 1
wsCollumCounter = 1
expansionSize = 175
cardRowSize = 13
cardCollumSize = 4
horizontalCardsPage = 3
verticalCardsPage = 3
originalWs.Activate
For i = 1 To expansionSize
originalWs.Range("C14") = i
originalWs.Range("B2:E14").Select
Selection.Copy
ws.Activate
If wsCollumCounter >= (cardCollumSize * horizontalCardsPage) Then
wsRowCounter = wsRowCounter + cardRowSize
ws.Rows(((wsRowCounter - 1) * verticalCardsPage) + 1).PageBreak = xlPageBreakManual
wsCollumCounter = 1
End If
ws.Cells(wsRowCounter, wsCollumCounter).Activate
ActiveSheet.Paste
wsCollumCounter = wsCollumCounter + cardCollumSize
originalWs.Activate
Next i
我不是 100% 确定这会解决问题,但它确实有助于消除一些歧义和诸如此类的东西:
Dim originalWs As Worksheet, ws As Worksheet
Dim wsRowCounter As Long, wsCollumCounter As Long, expansionSize As Long, cardRowSize As Long, cardCollumSize As Long
Dim horizontalCardsPage As Long, verticalCardsPage As Long, i As Long
Set originalWs = ActiveSheet
Set ws = Sheets.Add
wsRowCounter = 1
wsCollumCounter = 1
expansionSize = 175
cardRowSize = 13
cardCollumSize = 4
horizontalCardsPage = 3
verticalCardsPage = 3
For i = 1 To expansionSize
originalWs.Range("C14") = i
If wsCollumCounter >= (cardCollumSize * horizontalCardsPage) Then
wsRowCounter = wsRowCounter + cardRowSize
ws.Rows(((wsRowCounter - 1) * verticalCardsPage) + 1).PageBreak = xlPageBreakManual
wsCollumCounter = 1
End If
'perform the copy/paste in one line:
originalWs.Range("B2:E14").Copy Destination:=ws.Cells(wsRowCounter, wsCollumCounter)
wsCollumCounter = wsCollumCounter + cardCollumSize
Next i