[]
- это сокращение от Evaluate, которое будет возвращать массив.
Таким образом, чтобы использовать Range, необходимо явно использовать Evaluate:
Application.Evaluate("MAX(" & Worksheets("Sheet1").Range("A1:A5").Address(1, 1, 1, 1) & "-" & Worksheets("Sheet2").Range("A1:A5").Address(1, 1, 1, 1) & ")")
Но может быть быстреезагрузите значения в массивы вариантов, а затем повторите итерацию, чтобы найти MAX:
Dim Sht1 as variant
Sht1 = Worksheets("Sheet1").Range("A1:A5").Value
Dim Sht2 as Variant
Sht2 = Worksheets("Sheet2").Range("A1:A5").Value
Dim Mx as Double
Mx = -99999999
Dim i as Long
For i = Lbound(Sht1,1) to Ubound(sht1,1)
If sht1(i,1) - sht2(i,1) > Mx then Mx = sht1(i,1) - sht2(i,1)
Next i
Debug.Print Mx