2016-12-22 9 views
-1

の間、私はVBAで次の操作を行うことができます最善の方法を見つけるためにしようとしていた。VBAは機能

私はイベントが(その長いリストをちょうど例を与えること)が起こった座標のリストを持っています:私は(彼らは列であると言うので、基本的にイベントeastingsのそれぞれをチェックし、それらの座標のいずれかが別のタブに与えられた2 eastingsのいずれかに該当しているかどうかを確認する必要があり

527060 
526900 
524240 
524320 
525450 
526460 
527580 
526830 
524490 
525300 
526790 
524950 
523750 
523770 

をLocation_Easting

B)それらのnyは、別のタブの列(例:BとC)で与えられた2つの座標の間に入ります。

このループを書くにはどうすればよいでしょうか?

+0

ルック:)はD1で、その列をそれをコピーし、その後、すべてのペアをピックアップする限り、必要に応じて全体にコピーします。これまでに何を試しましたか? –

+0

http://stackoverflow.com/questions/16947199/find-if-value-exists-on-other-worksheet-excel –

+0

http://stackoverflow.com/questions/23061935/check-if-an-excel-cell -exists-on-another-works-a-column-and-return-the- –

答えて

1

あなたは、簡単なExcelの数式でこれを行うことができます。

=COUNTIFS(Sheet2!$B$1:$B$100,"<"&$B1,Sheet2!$C$1:$C$100,">"&$B1)

これ、イベントeastingsとシートの列Cに入れ、その後ダウンコピー、Sheet2の座標ペアの数を与えるとイベントのeastingsが間に入る列BとC。

編集: C1に(Ctrl + Shift + Enterを使用して)配列数式として次のように入力し、東距代わり間に収まる座標対の行番号を取得し、次にカラムをそれをコピーします。

=MATCH(1,(B1>Sheet2!$B$1:$B$100)*(B1<Sheet2!$C$1:$C$100),0)

編集2:さらにCtrl + Shiftを使用して(配列数式として次のように入力し、東距が間に入ること座標対の行番号を取得します`Match`および/またはVBAで` Index`機能で

=C1+(MATCH(1,($B$1>OFFSET(Sheet2!$B$1,C1,0,100))*($B$1<OFFSET(Sheet2!$C$1,C1,0,100)),0))

+0

ありがとうございます。しかし、イベント番号が入っている行番号2の座標を返すようにしたいのですか?これは理にかなっていますか?私はそれがどこに起こるかを知りたいです。どちらの行でも –

+0

それは別の質問ですが、私はそれも解決策を追加しました。 – bobajob

+0

ありがとうございますが、私はイベントeastingがシート2のeastingsの間に落ちるたびに行番号を表示する必要があります –