Excel VBA 連番印刷
昨日以下の質問をさせていただいた者です。
http://okwave.jp/qa/q8349562.html
こちらで教えていただいた以下のコードに、
J2のセルに連番を振るコードを付け足したいと思い、
同じくこちらのサイトの過去の履歴にあった以下コードを参考にとやってみているのですが、
Next で指定された変数の参照が無効です。と言われてしまいます…
印刷部数の指定はいらず、sheet印刷のJ2セルに1から始まる連番を振りたいのです。
どのように修正をしたらいいのかご教示願います。
Sub Sample4()
Dim i As Long, endRow1 As Long, endRow2 As Long, myArea1 As Range, myArea2 As Range
Dim wS1 As Worksheet, wS2 As Worksheet, wS3 As Worksheet
Set wS1 = Worksheets("DB")
Set wS2 = Worksheets("印刷")
Set wS3 = Worksheets("Sheet3")
endRow1 = wS1.Cells(Rows.Count, "A").End(xlUp).Row
Range(wS1.Cells(1, "A"), wS1.Cells(endRow1, "A")).AdvancedFilter Action:=xlFilterInPlace, unique:=True
wS1.Range("A:A").Copy wS3.Range("A1")
wS1.ShowAllData
For i = 2 To wS3.Cells(Rows.Count, "A").End(xlUp).Row
endRow2 = wS2.Cells(Rows.Count, "B").End(xlUp).Row
If endRow2 > 9 Then
Range(wS2.Cells(10, "B"), wS2.Cells(endRow2, "H")).ClearContents
Range(wS2.Cells(10, "J"), wS2.Cells(endRow2, "J")).ClearContents
End If
wS1.Range("A1").AutoFilter field:=1, Criteria1:=wS3.Cells(i, "A")
wS2.Range("B6") = wS3.Cells(i, "A")
Set myArea1 = Range(wS1.Cells(2, "B"), wS1.Cells(endRow1, "H")).SpecialCells(xlCellTypeVisible)
Set myArea2 = Range(wS1.Cells(2, "I"), wS1.Cells(endRow1, "I")).SpecialCells(xlCellTypeVisible)
myArea1.Copy
wS2.Activate
ActiveSheet.Range("B10").Select
Selection.PasteSpecial Paste:=xlPasteValues
myArea2.Copy
wS2.Activate
ActiveSheet.Range("J10").Select
Selection.PasteSpecial Paste:=xlPasteValues
endRow2 = wS2.Cells(Rows.Count, "B").End(xlUp).Row
'Range(wS2.Cells(1, "A"), wS2.Cells(endRow2, "J")).PrintOut
Next i
wS1.AutoFilterMode = False
wS3.Cells.Clear
End Sub
連番印刷のコード
Sub NumberPrint()
Dim idx As Integer
Dim res
res = Application.InputBox("印刷部数を入力してください", Type:=1)
If res > 0 Then
For idx = 1 To res
Range("AW3").Value = idx
ActiveSheet.PrintOut
Next idx
End If
End Sub
お礼
おかげ様で伝票の6ケタ連番印刷ができました。今まではナンバリングを使って1回に200枚ほど押していましたので、これからはずいぶんと楽になります。 ありがとうございました。