2017-11-24 15 views
-2

良い日に問題が発生しています.7日ごとに3000個のラベルを印刷する必要があり、順番に印刷中の瞬間に個々のラベルに印刷されます1,2,3,4,5,6 ...などですので、人が拾って正しいスロットに入れる時間が無駄になりますMicrosoft Access - ラベル印刷 - 縦方向に印刷するラベルはそれぞれ10個

私が必要とするのは、第2ページの第3ページページ3に記録し、この10ページのように、私の11レコードはレコード番号1の直下の最初のページにあり、レコード12はレコード番号2のページ2にあります..... 考えてみれば、 10のレコードを1つずつ取るのではなく、どのようにすればいいのか分かりません。

+0

必要な方法は、この質問は、プログラミングとは何の関係もありません。 – jhpratt

+0

データソースに数値を割り当てるマクロがあるので、ラベルを列の下に印刷するようにソートすることができます。私はVBAの中では珍しく、私は助けが必要です。 –

答えて

0
 ' Macro to assign numbers to data source so that it can be sorted to cause labels to print down columns 
    Dim Message, Title, Default, labelrows, labelcolumns, 
     i As Integer, j As Integer, 
    k As Integer 
    Message = "Enter the number of labels in a row" ' Set prompt. 
    Title = "Labels per Row" ' Set title. 
    Default = "3" ' Set default. 
    ' Display message, title, and default value. 
    labelcolumns = InputBox(Message, Title, Default) 
    Message = "Enter the number of labels in a column" ' Set prompt. 
    Title = "Labels per column" ' Set title. 
    Default = "5" ' Set default. 
    labelrows = InputBox(Message, Title, Default) 
    ActiveDocument.Tables(1).Columns.Add 
    BeforeColumn:=ActiveDocument.Tables(1).Columns(1) 
    ActiveDocument.Tables(1).Rows(1).Range.Cut 
    k = 1 
    For i = 1 To ActiveDocument.Tables(1).Rows.Count - labelcolumns 
    For j = 1 To labelrows 
    ActiveDocument.Tables(1).Cell(i, 1).Range.InsertBefore k + (j - 1) * 
    labelcolumns 
    i = i + 1 
    Next j 
    k = k + 1 
    i = i - 1 
    If k Mod labelcolumns = 1 Then k = k - labelcolumns + labelcolumns * 
    labelrows 
    Next i 
    ActiveDocument.Tables(1).Sort FieldNumber:="Column 1" 
    ActiveDocument.Tables(1).Rows(1).Select 
    Selection.Paste 
    ActiveDocument.Tables(1).Columns(1).Delete 

私は言葉のためだったこの1、残念ながらそれは正確に動作しませんでした私は

関連する問題