伙计们!
我有一张卡的模板,然后我想创建打印页面,其中175个,每页应该有3x3卡。到目前为止一切都那么好,但是如果我可以说,当我将复制的单元格粘贴到新的“行”时,我有错误1004。遵循以下代码:
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