Макро за премештање или копирање података између Екцел радне свеске

Овај чланак ће вас научити како копирати или преносити податке између прорачунских таблица у програму Мицрософт Екцел користећи ВБА. У овом конкретном примеру, такође ћемо вас научити како да комбинујете податке помоћу додатног упита. Ова комбинација задатака ће вам омогућити да комбинујете податке у постојећим радним листовима ради лакше анализе.

Макро за премештање или копирање података у Екцел

Узмимо случај у којем треба да копирате податке из једне радне свеске, а затим да измените садржај у другу радну свеску. У овом примјеру, једна радна књига (изворна радна књига) има 1 2 3 4 5 и радну књигу два има 6 7 8 9 0 .

Након покретања макроа, радна књижица два треба да има 6 7 8 9 0 1 2 3 4 5 . Обје радне књиге су исте.

Овде је макро који може да пренесе и дода ваше податке. (Уверите се да сте прочитали белешку у коду):

 Суб ЦопиДата ()

Дим сБоок_т Ас Стринг

Дим сБоок_с Ас Стринг

Дим сСхеет_т Ас Стринг

Дим сСхеет_с Ас Стринг

Дим лМакРовс_т Ас Лонг

Дим лМакРовс_с Ас Лонг

Дим сМакЦол_с Ас Стринг

Дим сРанге_т Ас Стринг

Дим сРанге_с Ас Стринг

сБоок_т = "Циљни подаци ВБ - Копирај податке у ВБ.клс"

сБоок_с = "Изворни подаци ВБ - Копирај податке у ВБ.клс"

сСхеет_т = "Циљни ВБ"

сСхеет_с = "Извор"

лМакРовс_т = Воркбоокс (сБоок_т) .Схеетс (сСхеет_т) .Целлс (Ровс.Цоунт, "А"). Енд (клУп) .Ров

лМакРовс_с = Воркбоокс (сБоок_с) .Схеетс (сСхеет_с) .Целлс (Ровс.Цоунт, "А"). Енд (клУп) .Ров

сМакЦол_с = Воркбоокс (сБоок_с) .Схеетс (сСхеет_с) .Целлс (1, Цолумнс.Цоунт) .Енд (клТоЛефт) .Аддресс

сМакЦол_с = Мид (сМакЦол_с, 2, ИнСтр (2, сМакЦол_с, "$") - 2)

Ако (лМакРовс_т = 1) онда

сРанге_т = "А1:" & сМакЦол_с & лМакРовс_с

сРанге_с = "А1:" & сМакЦол_с & лМакРовс_с

Воркбоокс (сБоок_т) .Схеетс (сСхеет_т) .Ранге (сРанге_т) = Воркбоокс (сБоок_с) .Схеетс (сСхеет_с) .Ранге (сРанге_с) .Валуе

Елсе

сРанге_т = "А" & (лМакРовс_т + 1) & ":" & сМакЦол_с & (лМакРовс_т + лМакРовс_с - 1)

сРанге_с = "А2:" & сМакЦол_с & лМакРовс_с

Воркбоокс (сБоок_т) .Схеетс (сСхеет_т) .Ранге (сРанге_т) = Воркбоокс (сБоок_с) .Схеетс (сСхеет_с) .Ранге (сРанге_с) .Валуе

' ###################### БЕЛЕШКА #################

'Сљедећи редови се користе за серијски број који се такођер треба поправити, умјесто копирања

'ако нема потребе, избришите линију испод

Воркбоокс (сБоок_т) .Схеетс (сСхеет_т) .Ранге ("А" & лМакРовс_т). АутоФилл Дестинатион: = Воркбоокс (сБоок_т) .Схеетс (сСхеет_т). - 1)), Тип: = клФиллСериес

Енд Иф

Енд Суб

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

Топ Савети