'очистка существующей выборки на экране
mxDoc.ActiveView.PartialRefresh_
esriViewGeoSelection , Nothing, Nothing
Вот тут вот зависаю)
Я не знаю, зачем вызывать обновление экрана дважды, как там делают. Надо проверять.
Но вообще после каких-либо изменений (в т.ч. и после изменения выборки) необходимо обновить экран. Метод PartialRefresh как раз и предоставляет эффективный способ это сделать. Выглядеть это будет как-то так:
Dim pActiveView As IActiveView
Set pActiveView = sxDoc.Scene
pActiveView.PartialRefresh esriViewGeoSelection, Nothing, Nothing
В цикле вызывать обновление экрана не надо! Вызывать надо уже в самом конце, за пределами этого самого цикла.
Незнаю что поменять и можете подсказать какой цикл должен быть чтоб по всем слоям прошелся а не только по одному. А так выборка получилась.
Посмотрите там скрипт №4.