Екцел макро - Динамички избор колоне

  • Питање
  • Решење
  • Белешка

Питање

Управо почињем да учим Екцел макрое. Радила сам на листу у којем морам да изаберем колону динамички, на основу имена заглавља колоне. Дозволи да објасним.

Рецимо да постоји Екцел лист који садржи следеће колоне (од А1 до Д1):

 РецНо Цуст_ИД Цуст_Наме Цонтацт_Нум 

Испод њих су подаци о клијентима који су присутни. Сада желим да извучем само Цуст_ИД (из колоне Б) и Цуст_Наме (из колоне Ц) за све записе.

Међутим, проблем је у томе што није неопходно да Цуст_ИД увек буде у колони Б. Иако ће наслов увек бити Цуст_ИД, његова локација може да се промени у колону Ц у неком другом листу који је генерисан и Цуст_Наме може да буде присутан у Колона Б (две колоне које треба извадити су замењене).

Користећи функцију матцх, могу да одредим позицију колоне, али након тога не могу да изаберем ту колону.

Функција коју сам користио за одређивање броја колоне дат је у наставку:

 ВорксхеетФунцтион.Матцх ("Цуст_ИД", Ранге ("А1: Д1"), 0) 

Решење

Само користите ове:

 'Одређивање опсега података. Дим лнгЛастРов Ас Лонг Дим лнгЛастЦол Ас Лонг Дим варДатаСелецт Ас Вариант 'Изаберите редове и колоне динамички. Селецтион.Енд (клДовн) .Селецт лнгЛастРовНум = АцтивеЦелл.Ров Селецтион.Енд (клТоРигхт) .Одабери лнгЛастЦол = АцтивеЦелл.Цолумн 'Име радног листа "МонтхлиРецеиведЦлаимс_Дата" почиње у реду 1 Колона 1' и завршава у ": Р" "Ц" & лнгЛастЦол варДатаСелецт = "МонтхлиРецеиведЦлаимс_Дата! Р1Ц1: Р" & лнгЛастРовНум & "Ц" & лнгЛастЦол АцтивеВоркбоок.ПивотЦацхес.Адд (СоурцеТипе: = клДатабасе, СоурцеДата: = _ варДатаСелецт). = "ПивотТабле1", ДефаултВерсион: = _ клПивотТаблеВерсион10 АцтивеСхеет.ПивотТаблеВизард ТаблеДестинатион: = АцтивеСхеет.Целлс (3, 1) 

'Такође помаже да користите функцију снимања макроа у Тоолс.

Кликните на запис. Направите извештај или статичну табелу као што желите.

Затим кликните на стоп рецорд и уредите код по потреби.

Белешка

Хвала АМ-у на овом савету на форуму.

Претходни Чланак Sledeći Чланак

Топ Савети