Како убацити Екцел таблицу у реч помоћу ВБА
Мајкрософт Офис Мицрософт реч Мицрософт Мицрософт екцел Јунак Реч / / April 29, 2020
Последњи пут ажурирано
ВБА је веома моћан алат који можете користити да бисте аутоматизовали доста посла између више Мицрософт Оффице апликација. Једна уобичајена активност коју можете аутоматизовати помоћу ВБА је уметање Екцелове табеле у Ворд документ.
Висуал Басиц за апликације (ВБА) је веома моћан алат који можете користити да аутоматизујете доста посла између више Мицрософт Оффице апликација. Једна уобичајена активност коју можете аутоматизовати помоћу ВБА је уметање Екцелове табеле у Ворд документ.
Постоје два начина да то урадите. Прво је аутоматизација директне копије и лепљења постојећег распона из Екцела у нову табелу у Ворд документу. Други је обављање израчуна у Екцелу, креирање нове табеле у програму Ворд и уписивање резултата у табелу.
Можеш покушати снимите макро да бисте то учинили, али макрои ће вам дозволити да аутоматизујете задатке само у програму Ворд. У овом ћете чланку научити како написати ВБА код да бисте аутоматизовали ове радње између Екцел-а и Ворд-а.
Копирајте и залепите Екцел домет у реч помоћу ВБА
У оба примера почет ћемо са примером Екцел прорачунске табеле. Овај пример је листа наруџбина за куповину разних производа.
Рецимо да желите да копирате и залепите цео распон ћелија на овом радном листу у Ворд документ. Да бисте то учинили, мораћете да напишете ВБА функцију која ће се покренути када кликнете на дугме „Копирај у реч“.
Изаберите Девелопер из менија и изаберите Уметни из групе Цонтролс у траци. На падајућој листи одаберите контролу дугмета под ставком АцтивеКс контроле.
Затим нацртајте командно дугме на десној страни листа. Наслов можете променити у „Копирај у реч“ тако што ћете десним тастером миша кликнути на дугме и изабрати Својства. Промените текст описа и помоћу Фонда можете да ажурирате величину и стил фонта.
Белешка: Ако не видите Девелопер у Екцел менију, а затим га додајте. Изаберите Филе, Опције, Прилагодите врпцу, и изаберите Све команде са леве падајуће стране. Онда се померите Девелопер са левог окна у десно и изаберите ОК да бисте завршили.
Напишите ВБА код копирања и лепљења
Сада сте спремни за почетак писања ВБА кода. Да бисте започели, двокликните нови Копирајте у Ворд дугме за отварање прозора уређивача кода.
Требали бисте видети подпрограм назван Цоммандбуттон1_Цлицк (), као што је приказано у наставку.
Желите да копирате сваки одељак кода у наставку. Пре него што започнете кодирање, да бисте управљали Вордом на рачунару користећи ВБА, мораћете да омогућите референтну библиотеку Мицрософт Ворд-а.
У уређивачу кода одаберите Алати из менија и изаберите Референце. На листи доступних референци померите се према доле и омогућите Мицрософт Ворд 16.0 Библиотека објеката.
Изаберите ОК и спремни сте за почетак кодирања. Проћи ћемо свако одељке кода одједном, тако да разумете шта та шифра чини и зашто.
Прво, морате да направите променљиве и објекте који ће држати домет и омогућити вам да управљате Ворд апликацијом.
Дим тблРанге Ас Екцел. Домет
Дим ВордАпп као Ворд. Апликација
Дим ВордДоц као Ворд. Документ
Дим ВордТабле као Ворд. Сто
Следећа линија кода одабире одређени распон ћелија и спрема је у Екцел Ранге објект у ВБА.
Подеси тблРанге = ТхисВоркбоок. Радни листови ("Схеет1"). Распон ("А2: Г44")
Затим желите да проверите да ли је апликација Ворд већ отворена на рачунару. На Ворд апликацију можете упутити помоћу посебне „класе“ референце са ВБА ГетОбјецт командом да бисте то постигли. Ако Ворд није већ отворена, следећа линија ће је покренути помоћу функције ЦреатеОбјецт. Линија „Он Еррор Ресуме Нект“ спречава било коју грешку да прва функција ГетОбјецт (ако Ворд није већ отворена) заустави извршење следећег ретка у програму.
О грешци Наставите даље
Поставите ВордАпп = ГетОбјецт (цласс: = "Ворд. Апликација")
Ако ВордАпп није ништа онда поставите ВордАпп = ЦреатеОбјецт (цласс: = "Ворд. Апликација")
Сада када се покрене Ворд апликација, желите да је учините видљивом за корисника и активирате је за употребу.
ВордАпп. Видљиво = Тачно
ВордАпп. Активирати
Затим желите да креирате нови документ у програму Ворд.
Подесите ВордДоц = ВордАпп. Документи. Додати
На крају, копирате и залепите распон ћелија у нову табелу у Ворд документу.
тблРанге Копирај
ВордДоц. Ставци (1). ПастеЕкцелТабле _
ЛинкедТоЕкцел: = Лажно, _
ВордФорматтинг: = Лажно, _
РТФ: = Нетачно
Прекидачи у горњој функцији ће уметнути неповезану табелу користећи изворно Екцел обликовање (не форматирање Ворд-а) и не користећи обогаћени текст.
Коначно, да бисте се бавили Екцел распонима који су шири од документа, мораћете да аутоматски пошаљете нову табелу тако да се уклапа у маргине вашег новог Ворд документа.
Подесите ВордТабле = ВордДоц. Столови (1)
ВордТабле. АутоФитБехавиор (вдАутоФитВиндов)
А сада сте готови! Спремите датотеку као Екцел датотеку која подржава макро (проширење .клсм). Затворите уређивач, поново сачувајте оригиналну датотеку Екцел-а, а затим притисните командно дугме да бисте видели код на делу!
Напишите Екцел резултате у табелу са ВБА
У овом следећем одељку уписаћете ВБА код који врши прорачуне вредности у Екцелу и уписује их у табела у програму Ворд.
За овај пример, извући ћемо податке у вредности од 10 редова, израчунати и записати резултате у табелу у Ворд документу. Такође, оригинална табела ће садржати четири ступца, а ВБА код ће повући првих десет редова података из тог распона.
Баш као у последњем одељку, проћи ћемо свако одељке истовремено, тако да разумете шта тај код ради и зашто.
Прво направите варијабле и објекте који ће садржавати податке и који ће вам омогућити да пишете у Ворд апликацији.
Дим тблРанге Ас Екцел. Домет
Дим ВрдРанге као реч. Домет
Дим ВордАпп као Ворд. Апликација
Дим ВордДоц као Ворд. Документ
Дим ВордТабле као Ворд. Сто
Дим интРовс
Дим интЦолумн
Дим стрДате као низ
Дим стрИтем као стринг
Прилагођене димензије као варијанта
Дим интЦост као варијанта
Дим интТотал као варијанта
Затим одредите укупне ступце и редове које желите да прочитате из програма Екцел.
интНоОфРовс = 10
интНоОфЦолумн = 5
Поновите исти код као и последњи одељак који ће отворити Ворд ако већ није отворен.
О грешци Наставите даље
Поставите ВордАпп = ГетОбјецт (цласс: = "Ворд. Апликација")
Ако ВордАпп није ништа онда поставите ВордАпп = ЦреатеОбјецт (цласс: = "Ворд. Апликација")
ВордАпп. Видљиво = Тачно
ВордАпп. Активирати
Подесите ВордДоц = ВордАпп. Документи. Додати
Следећа четири ретка стварају табелу унутар новоотвореног Ворд-овог документа.
Подесите ВрдРанге = ВордДоц. Домет (0, 0)
ВордДоц. Столови. Додајте ВрдРанге, интНоОфРовс, интНоОфЦолумн
Подесите ВордТабле = ВордДоц. Столови (1)
ВордТабле. Границе. Омогући = Тачно
Коначно, следећа петља ће извршити ове радње:
- У сваки ред ставите датум наруџбе, ставку, јединице и трошкове у променљиве
- Израчунајте јединични трошак времена (укупна продаја) и похраните га у променљиву
- За сваки ступац унесите вредности у Ворд табелу, укључујући израчунату укупне продаје у последњу ћелију
- Пређите на следећи ред и поновите горњи поступак
Ево како тај код изгледа:
За и = 1 за интНоОфРовс
За ј = 1 За интНоОфЦолумн
Ако је ј = 1 Тада
стрДате = тблРанге. Ћелије (и + 1, ј). Вељача
стрИтем = тблРанге. Ћелије (и + 1, ј + 1). Вредност
интУнитс = Вал (тблРанге). Ћелије (и + 1, ј + 2). Вељача)
интЦост = Вал (тблРанге). Ћелије (и + 1, ј + 3). Вељача)
интТотал = интУнитс * интЦост
Енд Иф
Изаберите Случај ј
Случај је = 1
ВордТабле. Ћелија (и, ј) .Ранда. Тект = стрДате
Случај је = 2
ВордТабле. Ћелија (и, ј) .Ранда. Тект = стрИтем
Случај је = 3
ВордТабле. Ћелија (и, ј) .Ранда. Тект = интУнитс
Случај је = 4
ВордТабле. Ћелија (и, ј) .Ранда. Тект = интЦост
Случај је = 5
ВордТабле. Ћелија (и, ј) .Ранда. Тект = интТотал
Цасе Елсе
Енд Селецт
Следећи
Следећи
Функција "Ћелије" у првом делу повлачи " вредности ћелија изван Екцел-а. Ћелије (к, и) значи да повлачи вредност ћелије у реду к и колони и.
Функција „Ћелија“ у последњем делу пише у ћелије у табели „Ворд“ користећи исте задатке редака и ступаца.
Једном када сачувате и покренете овај ВБА код, видећете резултате у новоствореном Ворд документу.
Као што видите, није превише сложено да би се створила корисна аутоматизација између Екцел-а и Ворд-а. Само је питање разумевања како раде различити „објекти“ који могу да створе и контролишу и Екцел и Ворд апликације на вашем рачунару.