ここでの問題は、新しい Excel アプリケーションで開かれた新しいワークブックへの参照にあると思います。これはコードの一部であり、エラーです。すべてに変更nb.ActiveSheet.QueryTables.Add
するとActiveSheet.QueryTables.Add
うまくいきます(ただし、nbではなく現在のワークブックで)。現在のワークブックではなく、新しいワークブックで実行する必要があります。
Dim app As New Excel.Application, nb As Excel.Workbook
Set nb = app.Workbooks.Add
With nb.ActiveSheet.QueryTables.Add(Connection:= _
"URL; http://www.example.com", _
Destination:=Range(Cells(2, 2), Cells(57, 3)))
End With