Excel VBA:複数の名前範囲を持つメソッドを交差させる[終了]


0

Intersectは機能しません。

範囲としてDim NTit範囲としてDim NInf範囲としてDim NDat

ワークシートセットとしてWSを暗くするWS = ActiveSheet

   Set NTit = WS.Range("$A$1:$J$1")       
   Set NInf = WS.Range("$B$3:$F$3")       
   Set NDat = WS.Range("$A$5:$K$11")       
   NTit.Interior.Color = RGB(255, 0, 0)
   If Not Intersect(Target, NTit, NInf, NDat) Is Nothing Then

あなたが何をしようとしているか、あなたの質問が何であるかを理解しやすくするために、この質問を書き直してください。How to Askを読むと役立つかもしれません。
チャーリーRB

変更イベントを実行すると、通常、交差部分は、入力データが範囲外のセルにある場合に続くコードを飛び越え、入力データが範囲内にある場合にコードを実行する必要がありますが、実際には毎回コードを飛び越えます。私はペイントするので、各範囲が正しいことを知っています、それはIntersect内のligneのエラーでなければなりませんか?ご協力ありがとうございました。
アナオ

回答:


2

ザ・はIntersect各パラメータが共通のセルまたはセルを持っている必要がありますので、動作しません。ORの状況ではありません。ANDです。基本的にを使用する必要がありますTarget AND (NTit OR NInf OR NDat)。これを組み合わせることによって達成することができるIntersectUnion

If Not Intersect(Target, Union(NTit, NInf, NDat)) Is Nothing Then

これは、Worksheet_Changeイベントマクロからのもののようです。その場合、を宣言して割り当てる必要はありませんWSMEワークシートオブジェクトとして使用できます。私が提案できる他の改善点もありますが、これが他の要因にどのように関係するかを見る前に、質問を編集してコードをさらに投稿してください。


これは良い答えです。
レイスタファリアン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.