| 
    
     |  | ▼りえ さん: 
 ご希望なので。
 先にコメントしたところも含めて、コードは、すべて元のままにしてあります。
 気になるところも多々ありますが・・・・・・
 Sheet1 は必ず処理されるんだということですから、Sheet2 の部分だけを以下。
 
 'sheet2
 Dim ws3 As Worksheet, ws4 As Worksheet
 Dim r1 As Range
 Dim n1 As Long
 Dim i1 As Long, j1 As Long, k1 As Long
 Dim done As Boolean     '★
 
 Set ws3 = Workbooks("C.xls").Worksheets("Sheet2")
 Set ws4 = Workbooks("B.xls").Worksheets("Sheet2")
 Set r1 = ws4.Range("A:I").Find("*", , xlValues, xlPart, xlByRows, xlPrevious)
 
 If Not r1 Is Nothing Then  '★
 
 n1 = Int((r1.Row - 2) / 20)
 
 If n1 >= 0 Then     '★
 
 done = True     '★
 
 Application.ScreenUpdating = False
 For i1 = 0 To n1
 If i1 > 0 Then ws3.Range("A1:J33").Copy ws3.Cells(33 * i1 + 1, 1)
 For j1 = 1 To 9
 If j1 = 1 Then k1 = j1 Else k1 = j1 + 1
 ws3.Cells(33 * i1 + 12, k1).Resize(20).Value = _
 ws4.Cells(20 * i1 + 2, j1).Resize(20).Value
 Next
 Next
 
 Dim x1 As Long
 For x1 = 1 To Cells(Rows.Count, 10).End(xlUp).Row
 If Range("G" & x1).Value = "数" Then
 Range("J" & x1).Value = "送"
 
 End If
 Next
 
 End If   '★
 
 End If     '★
 
 Workbooks("C.xls").Close SaveChanges:=True
 
 Workbooks("B.xls").Close SaveChanges:=False
 
 Application.ScreenUpdating = True
 
 If done Then
 MsgBox "終わりました"
 Else
 MsgBox "Sheet2に処理すべきデータはありませんでした"
 End If
 
 
 |  |