|
うまくできたとの事ですが、最初の質問と違って
>Set MyR = Range("A10:A68")
検索範囲が A10 からの場合、Match関数は 10行目 を 1 として
相対的な行を返します。つまり、仮に最大の数値が A12 で見つかった
とすると、変数 i には A12 の値ではなく A3 の値が入ることに
なります。その事を正しく認識されていれば良いのですが。
あと、検索範囲に数値が入力されていないとき、i = 0 として
PrintOut の引数に渡されてしまうから、If .Count(MyR) > 0 Then
の構文に Else を追加して、処理を中止させなくてはならないでしょう。
もちろん変数 i への代入は、右辺と左辺が逆なので完全に間違いと
言えます。これらの点を修正するなら
Private Sub CommandKYA4印刷_Click()
Dim Mx As Integer, i As Integer
Dim MyR As Range
Set MyR = Range("A10:A68")
With WorksheetFunction
If .Count(MyR) > 0 Then
Mx = .Match(.Max(MyR), Range("A:A"), 0) + 9
i = Cells(Mx, 1).Value
Else
MsgBox "数値が入力されたセルがありません", 48
Set MyR = Nothing: Exit Sub
End If
End With
Set MyR = Nothing
Application.ScreenUpdating = False
Sheet4.PrintOut From:=1, To:=i, Copies:=1
Application.ScreenUpdating = True
End Sub
|
|