2016-11-16 8 views
0

次のコードを、アクティブなセルに対するセルの値を設定する大きなサブルーチンの一部として記述しました。アクティブセル内で作られている。これは動作しますがセルの値を、アクティブなセルとの相対的な名前の範囲内の単一の列内で設定します

ActiveCell.Offset(0, 5).Value = "CLV 7" 

は、私は私のワークシートに列を追加する将来的に必要になったことがあり、これが原因に設定するために、その値を必要とセルの位置の変化に、問題を提示し、協会新しい列が追加されるたびにコードを書き換える必要があります。

この変数を検討する際、私は調査し、その結果、その中に値を設定する必要がある各列の範囲名を定義しました。私は、アクティブな行と名前付き範囲の列の間の変数&の再配置可能な交差点を決定し、値を設定する必要があるセルとして定義できると考えました。この後

私は、この変数の交差点を定義する方法を研究して、次の代替コードを設定しようとしました:それはトリックを行うだろうことを期待して

ActiveCell.Offset(0, 0).Range("BusinessStudies").Value = CLV 7 

を、残念ながらそれはしていません。私は他の投稿を見てきましたが、どのようにそれを調整するのか分かりません。私は誰もが提供できる助けに感謝します。前もって感謝します!

答えて

0

は編集

Debug.Print Intersect(Rows(ActiveCell.Row), Range("MyRange")).Value 

VBA

で交差()関数を試してください:あなたがセルに行くには、文字列 "CLV 7" をしたいと仮定して、自分の状況に適用されます。

Intersect(Rows(ActiveCell.Row), Range("BusinessStudies")).Value = "CLV 7" 
+0

おかげで@ teylyn。私はこれに "MyRange"の定義が必要だと思いますか?私はこれがサブルーチンの早い段階でこれを行うためにいくつかのコードを必要としているのを見たと思いますが、私はそれについて自信がありません。あなたは正しい方向に私を指摘してください、私はその部分も同様に完成することができますか? – ManbyRiver

+0

「MyRange」はすでに定義されている範囲名に置き換えられていますか?また、このコードを使って現在のコードを置き換え、最後に '= "CLV 7"を追加するだけですか?したがって、新しいコードは次のようになります: Debug.Print Intersect(行(Active BusinessObjects.Row)、Range( "BusinessStudies"))Value = "CLV7" 編集:私は今これを試してみました。作業。他の調整や選択肢を提案できますか? – ManbyRiver

+0

はい。これをあなたの状況に簡単に適用することができます。 'Intersect(行(ActiveCell.Row)、範囲(" BusinessStudies "))。値="何でも "。セル内の任意のものに「何でも」を置き換える必要があります。私は自分の投稿を編集しました。 – teylyn

関連する問題