表題の通りです。
ソース
vba
1 Dim path As String '// 集計ファイルパス 2 Dim wb As Workbook '// ワークブック 3 Dim index As Integer '// 集計シートインデクス 4 5 path = Worksheets(1).Cells(2, 1) 6 index = Worksheets(1).Cells(2, 2) 7 8 '集計情報 9 Dim dt_cnt As Integer 10 11 12 dt_cnt = Worksheets(1).Cells(2, 3) 13 14 Debug.Print index // 3 15 Debug.Print dt_cnt // 45 16 Debug.Print Worksheets(1).Cells(2, 3) // 45 17 18 Set wb = Workbooks.Open(Filename:=path, UpdateLinks:=0, IgnoreReadOnlyRecommended:=True) 19 Debug.Print wb.Worksheets(index).Cells(13, 27)
変数
path :別EXCELブックのパス
indes : パスで指定されているブックのシートインデックス
dt_cnt : 特に関係ない値です。
「index」、「「dt_cnt」、「Worksheets(1).Cells(2, 3)」の値は問題なくウィンドウに表示されます。
ただし、別ブックを参照している「wb.Worksheets(index).Cells(13, 27)」のみ表示されません。
何か指定が必要でしょうか。ちなみに別ブック自体は開けているので問題ないと思うのですが。
エラーは出ていますか?
エラーは出ていません。追記にも記載しますが、集計したいブックのシートをVBAが書かれているブックにコピーすると、値が表示されました。別ブックの値はイミディエイトに表示できないなどというルールがあるのですか???
同じようなコードで試しましたが、イミディエイトウィンドウにちゃんと出力されました。
meg_様のソースを拝見してもいいですか。
質問者さんのコードの抜粋ですよ。
Sub a()
Dim path As String
Dim index As Integer
Dim wb As Workbook
path = Worksheets(1).Cells(2, 1) #あるExcelブックの絶対パス
index = Worksheets(1).Cells(2, 2) #1
Set wb = Workbooks.Open(Filename:=path, UpdateLinks:=0, IgnoreReadOnlyRecommended:=True)
Debug.Print wb.Worksheets(index).Cells(13, 27)
End Sub
別ブックは開けている、エラーは出ていない、のであれば参照先のセルが空なんじゃないでしょうか?という安易な推測。
最終行にDebug.Print "TEST"など入れたらこれは出ますか?
お疲れ様です。テストは表示されますが、他ブックを参照してるのはダメでした。
参照先のセルが空なんじゃないですか?