Workbook ではなく、 Workbooks ?
Sheet1 ではなく、 "Sheet1" ?
あとは、BeasStarさんがご指摘のとおりだと思います。
以上を踏まえ、Book2でテストを行いました。
一応、エラーは生じませんでした。
VBA
1Sub Test()
2
3 Dim q(3) As Variant
4 Dim r(3) As Variant
5
6 'エクセルAの数値の型は通貨型
7
8 q(1) = Workbooks("Book2").Sheets("Sheet1").Cells(4, 11)
9 q(2) = Workbooks("Book2").Sheets("Sheet1").Cells(20, 11)
10
11 r(1) = q(1) + q(2)
12
13 Debug.Print r(1)
14
15End Sub
16
参考になれば、幸いです。
追記。
ご質問の内容の場合、配列は値ではなく範囲をセットしたほうがよさそうです。
VBA
1
2Sub test2()
3
4 Dim q(3) As Range
5 Dim r(3) As Variant
6 Dim s(1) As Range
7
8 'エクセルAの数値の型は通貨型
9
10 Set q(1) = Workbooks("Book3").Sheets("Sheet1").Cells(4, 11)
11 Set q(2) = Workbooks("Book3").Sheets("Sheet1").Cells(20, 11)
12
13 r(1) = q(1) + q(2)
14
15 Set s(1) = Workbooks("Book4").Sheets("Sheet1").Cells(4, 11)
16
17 q(1).Copy
18 s(1).PasteSpecial
19
20End Sub
参考まで。