Excel VBA получава стойност на диапазон от видими клетки след прилагане на автоматичен филтър

Не е ли възможно да се направи нещо просто като това, за да се получи стойността на обхвата на B2?

crdata.Range("B2").SpecialCells(xlCellTypeVisible).Value

Приложих автоматичния филтър за филтриране с дадените критерии и се опитвам да върна диапазона от B2 като функция.


person De De De De    schedule 30.10.2014    source източник
comment
какво е crdata? Ако B2 се вижда, не можете ли да пропуснете частта за специалните клетки?   -  person ZAT    schedule 30.10.2014


Отговори (1)


Задайте .SpecialCells(xlCellTypeVisible) на диапазон, след което използвайте Cells(row, column) в този диапазон, за да изберете стойността, която искате. Ако използвате заглавки в резултата, може също да се наложи да използвате Offset(1,0) за адресиране на вашите данни. Така че, когато „MySheet“ е дефиниран като обект на работен лист, нещо като:

Set rsltRng = MySheet.Autofilter.Range.SpecialCells(xlCellTypeVisible)
msgbox rsltRng.cells(2,2)
person barryleajo    schedule 30.10.2014