Kā ievietot Excel tabulu Word ar VBA
Microsoft Birojs Microsoft Vārds Microsoft Microsoft Izcilība Varonis Vārds / / April 29, 2020
Pēdējoreiz atjaunināts
VBA ir ļoti spēcīgs rīks, kuru varat izmantot, lai automatizētu daudz darba starp vairākām Microsoft Office lietojumprogrammām. Viena no kopīgām darbībām, kuras varat automatizēt, izmantojot VBA, ir Excel tabulas ievietošana Word dokumentā.
Visual Basic for Applications (VBA) ir ļoti spēcīgs rīks, kuru varat izmantot, lai automatizētu daudz darba starp vairākām Microsoft Office lietojumprogrammām. Viena no kopīgām darbībām, kuras varat automatizēt, izmantojot VBA, ir Excel tabulas ievietošana Word dokumentā.
To var izdarīt divos veidos. Pirmais ir automatizēt esoša diapazona no Excel taisnu kopiju un ielīmēt jaunā tabulā Word dokumentā. Otrais ir aprēķinu veikšana programmā Excel, jaunas tabulas izveidošana programmā Word un rezultātu ierakstīšana tabulā.
Jūs varētu mēģināt ierakstīt makro lai to izdarītu, bet makro tikai ļauj automatizēt uzdevumus Word iekšienē. Šajā rakstā jūs uzzināsit, kā rakstīt VBA kodu, lai automatizētu šīs darbības starp Excel un Word.
Kopējiet un ielīmējiet Excel diapazonu Word ar VBA
Abos piemēros mēs sāksim ar Excel izklājlapas paraugu. Šis paraugs ir dažādu produktu pirkšanas pasūtījumu saraksts.
Pieņemsim, ka vēlaties kopēt un ielīmēt visu šūnu virkni šajā darblapā Word dokumentā. Lai to izdarītu, jums būs jāraksta VBA funkcija, kas darbosies, noklikšķinot uz pogas “Kopēt uz Word”.
Izvēlieties Izstrādātājs no izvēlnes un atlasiet Ievietot no grupas Controls lentē. Nolaižamajā sarakstā ActiveX vadīklas atlasiet Button control.
Tālāk zīmējiet komandas pogu lapas labajā pusē. Parakstu var mainīt uz “Kopēt uz Word”, ar peles labo pogu noklikšķinot uz pogas un atlasot Īpašības. Mainiet paraksta tekstu, un fontu var izmantot, lai atjauninātu fonta lielumu un stilu.
Piezīme: Ja neredzat Izstrādātājs savā Excel izvēlnē, pēc tam pievienojiet to. Izvēlieties Fails, Iespējas, Pielāgojiet lentiun atlasiet Visas komandas no kreisās puses. Tad pārvietojieties Izstrādātājs no kreisās rūts pa labi un atlasiet Labi, lai pabeigtu.
Uzrakstiet kopiju un ielīmējiet VBA kodu
Tagad jūs esat gatavs sākt rakstīt VBA kodu. Lai sāktu, veiciet dubultklikšķi uz jaunā Kopēt uz Word pogu, lai atvērtu koda redaktora logu.
Jums vajadzētu redzēt apakšprogrammu ar nosaukumu Commandbutton1_Click (), kā parādīts zemāk.
Vēlaties nokopēt katru koda sadaļu zemāk. Pirms kodēšanas sākšanas, lai vadītu Word datorā, izmantojot VBA, jums jāatspējo Microsoft Word atsauces bibliotēka.
Kodu redaktorā atlasiet Rīki no izvēlnes un atlasiet Atsauces. Pieejamo norāžu sarakstā ritiniet uz leju un iespējojiet Objektu bibliotēka Microsoft Word 16.0.
Atlasiet Labi, un jūs esat gatavs sākt kodēšanu. Mēs apskatīsim katru koda sadaļu vienlaikus, lai jūs saprastu, ko un kāpēc šis kods dara.
Pirmkārt, jums jāizveido mainīgie un objekti, kas aiztur diapazonu un ļauj kontrolēt Word lietojumprogrammu.
Dim tblRange As Excel. Diapazons
Dim WordApp kā Word. Pieteikums
Dim WordDoc As Word. Dokuments
Dim WordTable as Word. Tabula
Nākamajā koda rindā tiek atlasīts noteikts šūnu diapazons un saglabāts VBA objektā Excel Range.
Iestatīt tblRange = Šī darba grāmata. Darblapas ("1. lapa"). Diapazons ("A2: G44")
Pēc tam vēlaties pārbaudīt, vai Word lietojumprogramma datorā jau ir atvērta. Varat atsaukties uz Word lietojumprogrammu, izmantojot īpašu “klases” atsauci ar komandu VBA GetObject, lai to paveiktu. Ja Word vēl nav atvērts, nākamā rinda to palaidīs, izmantojot funkciju CreateObject. Rinda “On Error Resume Next” neļauj visām pirmās GetObject funkcijas kļūdām (ja Word vēl nav atvērts) apturēt nākamās rindiņas izpildīšanu programmā.
On Error Resume Next
Iestatīt WordApp = GetObject (klase: = "Word. Pieteikums ")
Ja WordApp nav nekas, iestatiet WordApp = CreateObject (klase: = "Word. Pieteikums ")
Tagad, kad tiek palaista programma Word, vēlaties padarīt to redzamu lietotājam un aktivizēt to lietošanai.
WordApp. Redzams = patiess
WordApp. Aktivizēt
Pēc tam vēlaties izveidot jaunu dokumentu Word lietojumprogrammā.
Iestatiet WordDoc = WordApp. Dokumenti. Pievienot
Visbeidzot, jūs kopēsit un ielīmēsit šūnu diapazonu jaunā tabulā Word dokumentā.
tblRange. Kopēt
WordDoc. (1) punkts .Renge. PasteExcelTable _
LinkedToExcel: = Nepatiess, _
Wordformatēšana: = nepatiess, _
RTF: = nepatiess
Iepriekš minētās funkcijas slēdži ievietos nesaistītu tabulu, izmantojot avota Excel formatējumu (nevis Word formatējumu) un neizmantojot bagātinātā teksta formātu.
Visbeidzot, lai apstrādātu Excel diapazonus, kas ir plašāki par dokumentu, jums būs jāautofitē jaunā tabula, lai tā ietilptu jūsu jaunā Word dokumenta malās.
Iestatīt WordTable = WordDoc. Galdi (1)
WordTable. AutoFitBehavior (wdAutoFitWindow)
Un tagad esat pabeidzis! Saglabājiet failu kā makro iespējotu Excel failu (.xlsm paplašinājums). Aizveriet redaktoru, vēlreiz saglabājiet sākotnējo Excel failu un pēc tam noklikšķiniet uz pogas komandu, lai redzētu savu kodu darbībā!
Ierakstiet Excel rezultātus vārdu tabulā ar VBA
Šajā nākamajā sadaļā jūs uzrakstīsit VBA kodu, kas aprēķina vērtības Excel un tās uzraksta tabula Word.
Šajā piemērā mēs apkoposim 10 rindas vērtīgus datus, aprēķināsim rezultātus un ierakstīsim tos tabulā Word dokumentā. Sākotnējā tabulā būs arī četras kolonnas, un VBA kods no šī diapazona izvilks pirmās desmit datu rindas.
Tāpat kā pēdējā sadaļā, mēs apmeklēsim katru sadaļu vienlaikus, lai jūs saprastu, ko šis kods dara un kāpēc.
Vispirms izveidojiet mainīgos un objektus, kas satur datus un ļauj rakstīt Word lietojumprogrammā.
Dim tblRange As Excel. Diapazons
Dim WrdRange Kā vārds. Diapazons
Dim WordApp kā Word. Pieteikums
Dim WordDoc As Word. Dokuments
Dim WordTable as Word. Tabula
Blāvi intRows
Dim intColumns
Dim strDate As String
Dim strItem kā stīgu
Dim intUnits As Variant
Dim intCost As Variant
Dim intTotal As Variant
Pēc tam no Excel diapazona iestatiet kopējo kolonnu un rindu skaitu, kuras vēlaties lasīt.
intNoOfRows = 10
intNoOfColumns = 5
Atkārtojiet to pašu kodu kā pēdējai sadaļai, kurā tiks atvērts Word, ja tas vēl nav atvērts.
On Error Resume Next
Iestatīt WordApp = GetObject (klase: = "Word. Pieteikums ")
Ja WordApp nav nekas, iestatiet WordApp = CreateObject (klase: = "Word. Pieteikums ")
WordApp. Redzams = patiess
WordApp. Aktivizēt
Iestatiet WordDoc = WordApp. Dokumenti. Pievienot
Nākamās četras rindas izveido tabulu tajā jaunatvērtajā Word dokumentā.
Iestatīt WrdRange = WordDoc. Diapazons (0, 0)
WordDoc. Galdi. Pievienojiet WrdRange, intNoOfRows, intNoOfColumns
Iestatīt WordTable = WordDoc. Galdi (1)
WordTable. Robežas. Iespējot = True
Visbeidzot, šīs cilpas veiks šīs darbības:
- Katrā rindā mainīgajos ielieciet pasūtījuma datumu, vienumu, vienības un izmaksas
- Aprēķiniet vienības reizes izmaksas (kopējā pārdošana) un glabājiet to mainīgajā
- Katrā kolonnā ierakstiet vērtības tabulā Word, ieskaitot aprēķināto kopējo pārdošanas apjomu pēdējā šūnā
- Pārejiet pie nākamās rindas un atkārtojiet iepriekš aprakstīto procedūru
Šis kods izskatās šādi:
Ja i = 1 līdz intNoOfRows
J = 1 uz intNoOfColumns
Ja j = 1 Tad
strDate = tblRange. Šūnas (i + 1, j) .vērtība
strItem = tblRange. Šūnas (i + 1, j + 1) .vērtība
intUnits = Val (tblRange. Šūnas (i + 1, j + 2) .vērtība)
intCost = Val (tblRange. Šūnas (i + 1, j + 3) .vērtība)
intTotal = intUnits * intCost
Beigt ja
Atlasiet Case j
Gadījums ir = 1
WordTable. Šūna (i, j) .Renge. Teksts = strDate
Lieta ir = 2
WordTable. Šūna (i, j) .Renge. Teksts = strItem
Gadījums ir = 3
WordTable. Šūna (i, j) .Renge. Teksts = intUnits
Lieta ir = 4
WordTable. Šūna (i, j) .Renge. Teksts = intCost
Gadījums ir = 5
WordTable. Šūna (i, j) .Renge. Teksts = intTotal
Lieta vēl
Beigt atlasi
Nākamais
Nākamais
Funkcija “Šūnas” pirmajā daļā velk šūnu vērtības ārpus Excel. Šūnas (x, y) nozīmē, ka tā izvelk šūnas vērtību rindā x un y kolonnā.
Funkcija “Šūna” pēdējā daļā tiek ierakstīta Word tabulas šūnās, izmantojot tos pašus rindu un kolonnu uzdevumus.
Kad esat saglabājis un palaidis šo VBA kodu, rezultātus redzēsit jaunizveidotajā Word dokumentā.
Kā redzat, nav pārāk sarežģīti izveidot noderīgu automatizāciju starp Excel un Word. Atliek tikai izprast, kā darbojas dažādi “objekti”, kas jūsu datorā var izveidot un vadīt gan Excel, gan Word lietojumprogrammas.