シートにデータを入力するために使用されるリストボックスを含むユーザーフォームのブックがあります。Excel 2013 VBA:ワークブック間をクリックするとアクティブワークブックを設定する
私は開いている複数のワークブックを持っているとActiveworkbookの変更がユーザーフォームを含むブックを反映する前に、私は、他のワークブックのユーザーフォーム上のリストボックスに直接1つのワークブックからListBox_Changeイベント火災をクリックした場合。したがって、コードがSet EqDataSht = ActiveWorkbook.Worksheets("Equipment-Data")
に達すると、私が出てくるブックに「Equipment-Data」という名前のシートが含まれていないため、添え字が範囲外のエラーになります。
UserFormの親にActiveWorkbookを設定する最も良い方法は何ですか?私はworkbook_openにpublic変数wb = ActiveWorkbook
を設定しているか、Err.Number = 9をトラップし、ユーザーフォームをクリックする前にシートをクリックするように指示しています。私は完全に見落とされている単純なものがあると確信しています(VBAアマチュア)。
思考?
なぜ、「ActiveWorkbook」を使うのはなぜですか?あなたが作業している 'Workbook'オブジェクトへの参照を保持し、それらを使用してください。 –
http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros –