Then you should be able to shorten the entire code to:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim NewCat As String
If Intersect(Target, Range("A1:B2")) Is Nothing Then Exit Sub
NewCat = Worksheets("New Business").Range("B1").Value
For Each ptName In Array("PivotTable7", "PivotTable1")
With Worksheets("New Business").PivotTables(ptName)
.PivotFields("Job No.").CurrentPage = NewCat
.RefreshTable
End With
Next ptName
End Sub
If the sheet called New Business is the same sheet that the code is in (I strongly suspect it is) you don't need to explicitly refer to it in the code so the code becomes:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim NewCat As String
If Intersect(Target, Range("A1:B2")) Is Nothing Then Exit Sub
NewCat = Range("B1").Value
For Each ptName In Array("PivotTable7", "PivotTable1")
With PivotTables(ptName)
.PivotFields("Job No.").CurrentPage = NewCat
.RefreshTable
End With
Next ptName
End Sub
Finally, do you really need to do this on each selection change?
I would try putting it into the Worksheet_Change event instead.