Екцел / ВБА - Преузми информације из блиске радне свеске

[Екцел-ВБА] Прочитајте у затвореној радној свесци

Постоји неколико метода под ВБА, за читање података из Екцел радне књиге, без отварања касније. Већина ових метода је позната по својој сложености, али ипак постоји мали трик да се заобиђе, без употребе ОЛЕ ДБ конекције (Реад-Онли моде).

Увод

Покушаћемо да дохватимо информације у нашу радну књижицу "Рецап". Информације се налазе у следећем опсегу ћелија "А1: Ф10" "Схеет1" из "изворне" радне свеске, смештене у "Ц: Пијаку" директоријуму.

  • Прво отворите радну свеску и унесите "Пијаку" у Схеет1, из ћелије А1 у ћелију Ф10 и сачувајте је као "соурце.клс" у "Ц: Пијаку Не_фаит_риен_де_сес_јоурнеес
  • Затворимо ову радну свеску.
  • Отворите другу радну свеску и сачувајте је као " Рецап.клс " (на радној површини).

Метод у Екцелу:

У радној књизи Рецап.клс:

Уметните дефинисано име.

  • Мени: Инсерт
  • Избор: Име
  • Кликните на: Сет
  • Имена у радној књизи => типе: ранге
  • Односи се на => Ентер = 'Ц: Пијаку Не_фаит_риен_де_сес_јоурнеес ЦЦМ [соурце.клс] Феуил1'! $ А $ 1: $ Ф $ 10
  • Кликните на Додај.
  • У радну књигу унесите формулу у опсегу А1: =
  • и потврдите.
  • Истегните ову формулу од А1 до Ф10 ...

ВБА код

 Суб ИмпортерДоннеесСансОуврир ()

Дим Цхемин Ас Стринг, Фицхиер Ас Стринг

Цхемин = "Ц: Пијаку Не_фаит_риен_де_сес_јоурнеес ЦЦМ \ т

Фицхиер = "соурце.клс"

ТхисВоркбоок.Намес.Адд "плаге", _

РеферсТо: = "= '" & Цхемин & "[" & Фицхиер & "] Феуил1"! $ А $ 1: $ Ф $ 10 "

Са листовима ("Феуил2")

[А1: Ф10] = "="

[А1: Ф10]

Схеетс ("Феуил1"). Ранге ("А1"). ПастеСпециал клПастеВалуес

[А1: Ф10]

Завршити

Енд Суб

Напоменути да

Изнад свега, проверите да ли је путања до директоријума правопис исправна. Такође проверите да ли је "" присутна између путање именика и имена радне свеске.

Пример употребе

Овај код прелази кроз све радне свеске у директоријуму и издваја садржај ћелије А1 (схеет1), у овом случају на пример, датум.

 Оптион Екплицит

Суб ИмпортерДатес ()

Дим објСхелл Ас Објецт, објФолдер Ас Објецт

Дим Цхемин Ас Стринг, као Ас Стринг

Постави објСхелл = ЦреатеОбјецт ("Схелл.Апплицатион")

Постави објФолдер = објСхелл.БровсеФорФолдер (& Х0 &, "Цхоисир ун репертоире", & Х1 &)

Ако је објФолдер Нотхинг Тхен

МсгБок "Абандон оператеур", вбЦритицал, "Аннулатион"

Елсе

Колоне (1) .НумберФормат = "м / д / гггг"

Цхемин = објФолдер.ПарентФолдер.ПарсеНаме (објФолдер.Титле) .Патх & "\ т

[Б1] = Цхемин

фицхиер = Дир (Цхемин & "* .клс")

До Вхиле Лен (фицхиер)> 0

Иф фицхиер ТхисВоркбоок.Наме Тхен

ТхисВоркбоок.Намес.Адд "Плаге", _

РеферсТо: = "= '" & Цхемин & "[" & фицхиер & "] Феуил1"! $ А $ 1 "

Са листовима ("Феуил2")

. [А1] = "= Плаге"

[А1]

Схеетс ("Феуил1"). Ранге ("А" & Ровс.Цоунт) .Енд (клУп) .Оффсет (1, 0) .ПастеСпециал клПастеВалуес

Листови ("Феуил1"). Домет ("А" & Ровс.Цоунт) .Енд (клУп) .Оффсет (0, 1) = фицхиер

Завршити

Енд Иф

фицхиер = Дир ()

Лооп

Енд Иф

Енд Суб

Преузимања

Можете преузети:

  • соурце воркбоок
  • рецап воркбоок
  • Доступан је и за преузимање Зип датотеке која демонстрира петљу.
Претходни Чланак Sledeći Чланак

Топ Савети