我对VBA一点都不熟,求各位大虾们帮忙~~~~~~~~  宏~~
Sub PrintLabel()
    Dim x, y, z, a, b, c, d
    Sheets("data").Activate
    Range("A2").Select
10
    x = ActiveCell.Value 'X container
    ActiveCell.Offset(0, 1).Range("A1").Select
    y = ActiveCell.Value 'y SC
    ActiveCell.Offset(0, 1).Range("A1").Select
    z = ActiveCell.Value 'z order
    ActiveCell.Offset(0, 1).Range("A1").Select
    a = ActiveCell.Value 'a total parcel
    ActiveCell.Offset(0, 1).Range("A1").Select
    b = ActiveCell.Value 'b  pallet number
    
100
    Sheets("label").Activate
    Range("A2").Select
    ActiveCell.Value = x
    Range("B2").Select
    ActiveCell.Value = z
    Range("A4").Select
    ActiveCell.Value = y
    Range("B4").Select
    ActiveCell.Value = a
    Range("C4").Select
    ActiveCell.Value = b
    Range("A1:C4").Select
    Selection.PrintOut Copies:=1, Collate:=True
    Sheets("data").Activate
    ActiveCell.Offset(1, -4).Range("A1").Select
    
    If ActiveCell.Value = 0 Then Exit Sub
    GoTo 10End Sub这是一下原有的宏,但打印出来的一张纸只有一组,我想在一张纸上打印出4组,中间有空行,求各位大虾们帮我,解决就给分~~~下面的是Excel表格的打印格式
Style No.   Color-Chinese
DC0112          黑色
Barcode          Color-English   Size
6943558808589  Black           85C

解决方案 »

  1.   

    Option ExplicitSub PrintLabel()
        Const RecordNumber As Long = 4, DataSheet As String = "Data", LabelSheet As String = "label"
        Dim sht As Worksheet, lRow As Long, lRowOff As Long
        Set sht = Sheets(DataSheet)
        lRow = 2
        Sheets(LabelSheet).Activate
        Range("A1:C" & (RecordNumber * 5 - 1)).Select
        
        Do
            For lRowOff = 0 To (RecordNumber - 1) * 5 Step 5
                Range("A" & (2 + lRowOff)).Value = sht.Range("A" & lRow).Value
                Range("B" & (2 + lRowOff)).Value = sht.Range("C" & lRow).Value
                Range("A" & (4 + lRowOff)).Value = sht.Range("B" & lRow).Value
                Range("B" & (4 + lRowOff)).Value = sht.Range("D" & lRow).Value
                Range("C" & (4 + lRowOff)).Value = sht.Range("E" & lRow).Value
                lRow = lRow + 1
                If sht.Range("A" & lRow).Value = 0 Then
                    Range("A1:C" & (lRowOff + 4)).Select
                    Exit For
                End If
            Next lRowOff
            Selection.PrintOut Copies:=1, Collate:=True
            If sht.Range("A" & lRow).Value = 0 Then Exit Do
        Loop    MsgBox "打印完成。共打印" & (lRow - 2) & "条记录。", , "完成"
        Set sht = Nothing
    End Sub