2016-11-14 10 views
0

エクセルそれをやり直す手順。私が読んでいる本の著者は、彼女がこの手順を繰り返す前に、彼女がこの中に入れている手順を繰り返すので、5にとどまることを暗示しているようだ。は今、私は手順がいくつかの仕様に基づいて、ワークシート、その後、Iループを削除する必要があり、私は5つのワークシートや..</p> <p>shcount = worksheets.count</p> <p>を持って言うことができますVBAのカウンターとその生涯(っぽい)

shcount = shcount -1 shcount = 1までカウンタがループするまでループ

答えて

1

はい、変数にworksheets.countを割り当てた時点で5だったので、5にとどまります。変数はではなく、に関連するショートカットは、ある時点でのカウントのコピーです。代入(shcount = worksheets.count)の後、shcountとworksheets.countの間にリンクはありません。カウントを変更しても変数は独立したコピーにはなりません。

shcountを更新するには、別の割り当て(つまり、shcount = worksheets.count)を行うか、作成者が行っているように自分自身で値を維持する必要があります。

+0

(あなたは私がnoobのだ伝えることができます!)ありがとうリンク」の意味は、そのときあなたは、コードを書くときの考えることができる重要な時間は自分のしています" – Jeremy

+0

@Jeremy"リンクする "というこのコンセプトをまったく取り残さないでください。後であなたの学習の中で、 'Range'や' Collection'のような 'Object'変数に遭遇します - あなたは' Set'ステートメントで代入します。それらはオリジナルへの "リンク"を維持します - 範囲の値を変更する - その範囲を参照するすべての変数のためにそれを変更します。別の注意点は、関数とプロシージャに渡す引数です。デフォルトでは参照渡しとなり、渡された値を変更すると、呼び出し元の値も変更されます。したがって、func/subに渡す引数を変更しないことをお勧めします。 –

0

あなたの質問はちょっと混乱しています。

shcount = worksheets.countは、変数shcountに値5を割り当てています。 shcountは値が変更されるまで5のままです。実際のWorksheetsコレクションへのリンクはありません。

このシリーズ全体をご覧くださいExcel VBA Introductionこのビデオ:Excel VBA Introduction Part 3 - What to do When Things Go Wrong (Errors and Debugging)は、コードをステップ実行し、変数の値を行ごとにチェックする方法を教えてくれます。

ここで私はshcountの時計を設定しました。このようにして、shcountの値がウォッチウィンドウに表示されます。変数がLocalsウィンドウにあることにも注意してください。

コードをステップ実行すると、値の変化がわかります。私にとってVBAの全体の景観を変更

enter image description here

関連する問題

 関連する問題