3

他のいくつかのサブルーチンの1つを呼び出すサブルーチンを作成しようとしています。

ifステートメント内で呼び出しを使用すると、エラーが発生します。

モジュールではなく、予期される変数またはプロシージャ。

呼び出し手順は次のとおりです。

Call schedule_3_day(shift1, ActiveWorkbook.Sheets("Employees"), ActiveWorkbook.Sheets("3 Day Template"))

これが参照する関数です。

Sub schedule_3_day(ByRef sourcesheet As Worksheet, ByRef employeesheet As Worksheet, ByRef template As Worksheet)

それ自体、つまり自己完結型のサブルーチンの場合、schedule_3_dayは意図したとおりに機能します。ユーザー定義変数を渡すように変更しようとしています。

4

2 に答える 2

12

バックグラウンド

Module1Excel がモジュールを作成するとき、次に という名前が付けModule2られます。私のように、ルーチンをグローバル、タスク 1、タスク 2 などのセットに分割すると、混乱する可能性があります。

Excel モジュールの名前を変更できることを誰もが知っているわけではないようです。これは、モジュールの名前を求められる Access で明らかになります。Excel の場合、この機能を自分で発見する必要があります。

モジュールを選択して F4 をクリックすると、フォームの場合と同様に、モジュールのプロパティがフローティング ウィンドウに表示されます。唯一のプロパティはName、変数名の規則に準拠する任意のものに変更できるものです。この機能を使用して、モジュールの名前を 、GlobalなどTask1に変更します。Task2これにより、今日作業するモジュールを簡単に識別できます。

制限

モジュールの名前の選択に関して、1 つの制限に遭遇したと思います。

モジュールの名前を変更すると、その名前のモジュールTask1内のサブ、関数、またはグローバル変数Task1は外部から見えなくなります。

を含むモジュールのsub schedule_3_day(ByRef ...名前がschedule3_day.

于 2013-01-02T09:20:11.730 に答える