Sub test()
Dim PrintSheet As Worksheet
Dim DataSheet As Worksheet
Dim r As Long
Set PrintSheet = Worksheets("印刷用シート")
Set DataSheet = Worksheets("データシート")
r = 1
'D列で sort
DataSheet.Select
Range("A1").Select
Range("a1").Activate
Selection.End(xlToLeft).Select
Selection.End(xlUp).Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Application.CutCopyMode = False
Selection.sort Key1:=Range("D1"), Order1:=xlAscending, Key2:=Range("AD2" _
), Order2:=xlAscending, Key3:=Range("M2"), Order3:=xlAscending, Header _
:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom _
, SortMethod:=xlPinYin
Range("A1").Select
Range("a1").Activate
'データ量抽出 参考
' DataSheet.Select
' Range("A1").Select
' Range("a1").Activate
' Selection.End(xlToLeft).Select
' Selection.End(xlDown).Select
' Selection.Rows.Row ←この時の、この値が最終行
' おまじない
PrintSheet.Select
Do While DataSheet.Range("d" & r ).Value <> ""
If DataSheet.Range("d" & r ).Value >= 1 Then
'データの値のみコピー(セル値=式としてはコピーしません)
DataSheet.Range("a" & r).Copy
PrintSheet.Range("AV1").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'一応コメント
' PrintSheet.Calculate
PrintSheet.PrintOut
End If
r = r + 1
Loop
End Sub
'プリンタの選択例
' Application.ActivePrinter = "プリンターです on Ne01:"
'プリンタのセットアップ例
Sub prt_set()
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = "&18&Uヘッダータイトル等"
.RightHeader = "" & Chr(10) & " &P頁"
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.68)
.RightMargin = Application.InchesToPoints(0.43)
.TopMargin = Application.InchesToPoints(1.10236220472441)
.BottomMargin = Application.InchesToPoints(0.62)
.HeaderMargin = Application.InchesToPoints(0.78740157480315)
.FooterMargin = Application.InchesToPoints(0.393700787401575)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 92
' ↓エラーになるのでコメント
' .PrintErrors = xlPrintErrorsDisplayed
End With
ActiveWindow.SelectedSheets.PrintPreview
End Sub
例えば・・1行目は3 2行目は空欄 3行目は・・みたいな。
えっと・・・・D列には
=if(counta(P7:T7)=0,"",1+MAX($d$5:$d$6))
と関数が入っており、 値が返ったセルに上から順番に
1.2.3・・・と入るようです(私が作ったシートではないので良く分かりません。)
このD列に値が返ったデータを印刷シートの検索値として使用して
VLOOKUPを使って書類を作成したいのです。
検索値に入れるのはデータシートのD列に数字のあるレコードの
A列を使っているんです。
どうぞ 宜しくお願いします。
このコードでは2行目から調べて、空白が出るまでを印刷するようになっています。
それから、VBAでは => ではなく >= を使います。
意図をはき違えていたらごめんなさい。
印刷用のシートで再計算されていますが、印刷用のシート内に、その値を参照されていということですか?
たぶん必要ないかとも思います。