下記は備忘録的ですが説明します。
なお、例のごとくVBAでは実行時エラーで同じエラー内容を吐き出す場合があります。そのため今回の事象で解決できない場合もある点に注意してください。
Rowsourceプロパティで「アクティブでないシート」のデータを表示するときに、「シート名!データ範囲」とする必要がありますが、実際にその通りに設定していました。
しかしそれでは複数のブックを開いてた場合に対処できず、今回のエラーが発生します。
そこで絶対パスのような書き方で対処しました。
「[ブック名]シート名!データ範囲」
‘———————————————
‘Book1のシート1のA1からD20をリストボックスに表示
‘———————————————
Me.ListBox1.RowSource = “[Book1]Sheet1!A1:D20”
‘———————————————
‘変数を使って汎用的にする場合
‘———————————————
With ThisWorkbook
Me.ListBox1.RowSource = “[” & .Name & “]” & .Worksheets(1).Name & “!” & .Worksheets(1).Cells(1, 1).CurrentRegion.Address
End With
‘———————————————
‘変数を使って汎用的にする場合2 見づらさを少し回避
‘———————————————
Dim Wb As Workbook
Dim Wsh As Worksheet
Set Wb = ThisWorkbook
Set Wsh = Wb.Worksheets(1)
Me.ListBox1.RowSource = “[” & Wb.Name & “]” & Wsh.Name & “!” & Wsh.Cells(1, 1).CurrentRegion.Address
End Sub