Како копирати податке из једног Екцел-овог листа у други користећи формулу

Овај ФАК ће вас водити кроз то како да квалификујете и преместите своје податке.
Копирање података из једног Екцел листа у други са формулом
Започните отварањем картице за програмере у Екцелу.Затим морате да направите УсерФорм Схеет Цонтроллер. Ова корисничка форма вам омогућава да изаберете одакле су подаци премештени, где су подаци премештени, која колона треба да провери да ли квалификовани подаци одређују да ли се померају, и која вредност уноса у колони треба да буде да се помера.
Приликом креирања ваше корисничке форме, одразите следећи пример, водећи рачуна да исправно именујете сваку контролу:
Сада када сте направили Усерформ, морате приложити код сваке контроле. У корисничкој форми двапут кликните на контролу под именом ЦоммандБуттон2 . Дијаграм корисничке форме више не би требало да буде видљив, и сада би требало да вам се прикаже истраживач кода, са подразумеваним блок-кодом. Овај кодни блок почиње са Привате Суб ЦомандБуттон2_Цлицк () . Поставите курсор испод прве линије, али пре линије која каже Крај Суб . Сада унесите следећи код да бисте поставили јавне променљиве које ће се применити на остатак кода:
Сада, вратите се у УсерФорм Екплорер и двапут кликните на контролу означену ЦоммандБуттон3 . Још једном, УсерФорм се ставља по страни за екплорер кода. Поставите курсор на ново креирани блок кода и унесите следећи код:
У Екплореровом делу Пројецт Екплорера, кликните десним тастером миша на Мицрософт Екцел објекте . Изаберите Инсерт > Модуле .
Двапут кликните на модул Модуле1 и укуцајте следеће јавне променљиве:
Сада, додајте још три листа у радну свеску. Сада би требало да имате четири листа, под називом Схеет1, Схеет2, Схеет3 и Схеет4 .
На Листу1 ставите ставке у око 10-15 линија, користећи слику испод као пример тест података:
Затим, на картици Девелопер (на врху радне свеске) кликните Цонтролс > Инсерт > ицон ицон :
Сада, поставите дугме било где на вашем листу. Када пита за макрое, изаберите Нев .
Приметићете да је нови макро постављен у Модул2 пројекта. Означите блок кода у Модулу2, исеците га из Модула2 . Сада двапут кликните на Модуле1 . Када се отвори Екплорер кода, кликните десним тастером миша и изаберите Залијепи . Требали бисте сада имати празан блок кода који гласи:
Поставите курсор унутар блока кода и додајте следећи код:
Приметићете да постоји функција која се зове Буилдформ . Ово поставља УсерФорм за одговарајући број листова, након што их попише. Да бисте применили ово, поставите следећу шифру у Цоде Екплорер, испод Буттон1_Цлицк () подрутине :
Унутар функције буилдформа постоји још једна функција која се зове Цоунттабс . Овај код треба да поставите изнад кода конструкције, али испод потпрограма Буттон1_цлицк :
Ако су постављене и ТабФром и ТабТо променљиве, онда ћете морати да покренете функцију цреатеНев () . Поставите доњи код у Цоде Екплорер, изнад потпрограма Буттон1_цлицк :
Ако сте изабрали креирање новог листа, промените ТабТо променљиву у ново име листа. Тада ћете морати покренути ЛоопФорМове (ТабФром, ТабТо) рутину. У коду Екплорер унесите следећи код:
Да бисте пронашли последњи ред Вашег листа, унесите испод код у Цоде Екплорер, изнад ЛоопФорМове (ФромВхатСхеет, ТоВхатСхеет) :
Сада ћете моћи да преместите стварни код користећи функцију Мовеит (ФромВхатСхеет, ЦеллЛоц, ТоВхатСхеет, ЦутВал) . Између ЛооФорМове () и цреатеНев () функција, поставите следећи код:
Наставите да кружите кроз сваку линију на листу Фром, тражећи квалификоване уносе, користећи функцију Фор Лооп .
Да сумирамо акције УсерФорм-а, погледајте следећу илустрацију:
Ово је иста илустрација са, овог пута, са више елемената који се узимају у обзир:
На крају, овде је у потпуности наведен горе наведени код:
Оптион ЕкплицитПублиц ТабФром
Публиц ТабТо
Публиц Куалиф Ас Стринг
Публиц ВхатЦол
Публиц ВхатЛогиц
Публиц ЦутВал
Публиц ФормКсцел
Функција ФиндЛастРов (ОнВхатсхеет)
ФиндЛастРов = Целлс (ТхисВоркбоок.Ворксхеетс (ОнВхатсхеет) .Ровс.Цоунт, 1) .Енд (клУп) .Ров
Енд Фунцтион
Функција ЛоопФорМове (ФромВхатСхеет, ТоВхатСхеет)
Дим ЛастРов, Цнт
Дим ЦеллВалуе Ас Стринг
Дим ЦеллЛоц
Дим нрет
Ако ВхатЦол = "" Онда
ВхатЦол = "А"
Енд Иф
Ако је Куалиф = "" Затим
Куалиф = "Кс"
Енд Иф
ТхисВоркбоок.Ворксхеетс (ФромВхатСхеет) .Селецт
ЛастРов = ФиндЛастРов (ФромВхатСхеет)
За Цнт = ЛастРов За 1 Корак -1
ЦеллЛоц = ВхатЦол & Цнт
ЦеллВалуе = ТхисВоркбоок.Ворксхеетс (ФромВхатСхеет) .Ранге (ЦеллЛоц) .Валуе
Иф ЦеллВалуе = Куалиф Тхен
нрет = Мовеит (ФромВхатСхеет, ЦеллЛоц, ТоВхатСхеет, ЦутВал)
Енд Иф
Следећи
Енд Фунцтион
Функција Мовеит (ФромСхеет, ВхатРанге, ТоВхере, ЦутВал)
Дим МовеСхеетЛастРов
Витх ТхисВоркбоок.Ворксхеетс (ФромСхеет)
.Селецт
.Ранге (ВхатРанге) .ЕнтиреРов.Селецт
Завршити
Селецтион.Цопи
Ако је ЦутВал = Труе тада
Селецтион.Цут
Енд Иф
МовеСхеетЛастРов = ФиндЛастРов (ТоВхере)
ТхисВоркбоок.Ворксхеетс (ТоВхере)
ТхисВоркбоок.Ворксхеетс (ТоВхере) .Целлс (МовеСхеетЛастРов + 1, 1) .ЕнтиреРов.Селецт
Селецтион.Инсерт
ТхисВоркбоок.Ворксхеетс (ФромСхеет) .Селецт
Апплицатион.ЦутЦопиМоде = Фалсе
Енд Фунцтион
Функција цреатеНев ()
Дим НевСхеет
Ако је ТабТо = "Нови лист" Тада
ТхисВоркбоок.Схеетс.Адд Афтер: = Листови (Схеетс.Цоунт)
НевСхеет = ТхисВоркбоок.АцтивеСхеет.Наме
ТабТо = НевСхеет
Енд Иф
Енд Фунцтион
Суб Буттон1_Цлицк ()
Дим нрет
буилдформ
Ако је ФормКсцел = Фалсе тада
Иф ТабФром "" Анд ТабТо "" Затим
створи ново
нрет = ЛоопФорМове (ТабФром, ТабТо)
Елсе
МсгБок ("Молим вас да поставите" Фром "и" То "лист!")
Енд Иф
Енд Иф
Енд Суб
Функција Цоунттабс ()
Цоунттабс = ТхисВоркбоок.Ворксхеетс.Цоунт
Енд Фунцтион
Функција буилдформ ()
Дим ТабЦоунт
Цонтроллер.ЦомбоБок2.АддИтем "Нови лист"
За ТабЦоунт = 1 За Цоунттабс
Цонтроллер.ЦомбоБок1.АддИтем ТхисВоркбоок.Ворксхеетс (ТабЦоунт) .Наме
Цонтроллер.ЦомбоБок2.АддИтем ТхисВоркбоок.Ворксхеетс (ТабЦоунт) .Наме
Следећи
Цонтроллер.Схов
Енд Фунцтион
Хвала вам што сте означили овај савет.
Слика: © Мицрософт.