Dažreiz mums ir jākopē dati no Word dokumenta uz Excel failu. Mēs to varam izdarīt ļoti viegli, izmantojot makro visās biroja versijās. Makro atvērs esošu / jaunu Excel failu, nokopēs saturu un pēc tam saglabās un aizvērs failu. Redzēsim, kā tas tiek darīts.
Skaidrs variants
Apakš OpenAndReadWordDoc ()
Dim tString kā virkne
Dim p Cik ilgi, r Cik ilgi
Dim wrdApp kā objekts, wrdDoc kā objekts
Dim wb kā darbgrāmata
Dim trange Kā variants
Iestatiet wb = darbgrāmatas. Pievienot
Ar wb. Darblapas (1). Diapazons (“A1”)
.Value = “Word dokumenta saturs:”
.Fonts. Bold = Patiess
. Fonts. Izmērs = 14
.Pārvietojums (1,0). Izvēlieties
Beigt ar
r = 3
Iestatīt wrdApp = CreateObject (“Word.Application”)
wrdApp.Visible = True
Iestatiet wrdDoc = wrdApp.Documents.Open (“B: \ Test \ MyNewWordDoc.docx”)
Ar wrdDoc
Par p = 1 līdz .Punkti.Skait
Iestatīt trange = .Range (Sākt: =. Punkti (p). Range.Start, _
Beigas: =. Punkti (p). Range.End)
tString = trange. Teksts
tString = pa kreisi (tString, Len (tString) -1)
Ja Instr (1, tString, ”1”)> 0 Tad
wb. Darblapas (1). Diapazons (“A” & r). Vērtība = tString
r = r+1
Beigas Ja
Nākamā p
.Slēgt
Beigt ar
wrdApp. Iziet
Set wrdDoc = Nekas
Iestatīt wrdApp = Nekas
wb. Saglabāts = True
Beigt apakš
Lai kopētu iepriekš minēto kodu savā failā,
- Nospiediet tastatūras taustiņu kombināciju Alt + F11
- Kreisajā pusē redzēsit Microsoft Excel objektus
- Ar peles labo pogu noklikšķiniet un atlasiet Ievietot
- Pēc tam noklikšķiniet uz moduļa
- Kopējiet kodu koda logā labajā pusē
Tagad redzēsim, kā šis kods darbojas -
Vispirms mēs deklarējam vajadzīgos mainīgos -tstring kā virkni teksta turēšanai (kādu tekstu redzēsim vēlāk). 2 mainīgie “p” un “r” kā skaitītāji. Tie ir “gari”. Tad mums ir 2 objektu mainīgie wrdApp un wrdDoc. wrdApp ir vārdu lietojumprogrammas objekts, un wrdDoc ir Word dokumenta objekts. Wb ir mūsu darbgrāmatas mainīgais jaunajai darbgrāmatai, kas ir izveidota kodā. Ja atverat esošu darbgrāmatu, tā vietā varat piešķirt šo mainīgo. Pēdējais mainīgais ir mainīgā varianta veids, kuram būs saturs, kas jāpārnes no vārda doc uz Excel failu.
Iestatiet wb = darbgrāmatas. Pievienot
Tādējādi jaunā darbgrāmata tiek piešķirta mainīgajam wb. Ja nevēlaties pievienot jaunu darbgrāmatu, bet atverat esošu darbgrāmatu, varat mainīt šo rindu šādi:
Iestatiet wb - darbgrāmatas. Atveriet (“B: \ Test \ File1.xlsx”)
Ar wb. Darblapas (1). Diapazons (“A1”)
.Value = “Word dokumenta saturs:”
.Fonts. Bold = Patiess
. Fonts. Izmērs = 14
.Pārvietojums (1,0). Izvēlieties
Beigt ar
Ar wb.Worksheets (1) .range (“A1”) ir ātrs veids, kā uz to atsaukties. Tātad jums tas nav jāatkārto katrai koda rindai starp paziņojumiem ar un beigām.
Šīs koda rindiņas ir ievietotas tekstā “Word dokumenta saturs:” ar treknrakstu un 14. fonta lielumu 1. šūnā A1.st darblapu jaunajā darbgrāmatā. Un pēc tam .Pārvietojums (1,0). Atlasot tiek atlasīta nākamā rinda.
r = 3
Mainīgajam “r” tiek piešķirta vērtība 3, jo šī ir Excel faila sākuma rinda, lai kopētu datus no Word dokumenta.
Iestatīt wrdApp = CreateObject (“Word.Application”)
Ja Word jau darbojas jūsu sistēmā,CreateObjectizveidos jaunu Word gadījumu. Tātad šī rinda piešķir Word lietojumprogrammai objekta mainīgo wrdApp, kuru varat izmantot vēlāk kodā.
wrdApp.Visible = True
Jaunizveidotais Word eksemplārs nebūs redzams, kad tas tiks izveidots. Lai padarītu to redzamu, jums jāiestata wrdApp.Visible = True, lai tas būtu redzams.
Iestatiet wrdDoc = wrdApp.Documents.Open ("B: \ Test \ MyNewWordDoc.docx")
Mēs izveidojām jauno Word lietojumprogrammas gadījumu, bet mēs vēl neesam atvēruši avota Word dokumentu. Tātad šī komanda atvērs vārdu dokumentu. Šim dokumentam ir piešķirts objekts wrdDoc, lai mēs varētu to izmantot vēlāk kodā.
Ar wrdDoc…. Beigt ar
Šī ir mūsu “Ar” cilpa, kas pilnībā darbosies ar objektu wrdDoc. Kad esat atvēris šo cilpu, jums vairs nav jāatkārto teksts “wrdDoc” šajā cilpā. Jūs varat sākt tieši ar punktu (“.”) Pirms jebkādiem objektiem, kas saistīti ar wrdDoc. Šī cilpa beidzas ar Beigt ar paziņojums, apgalvojums. Kad paziņojums “Beigt ar” ir ievadīts, jūs nevarat atsaukties uz objektiem pēc wrdDoc, izmantojot tikai “.”.
Par p = 1 līdz .Punkti.Skait
Šī ir cilne “Par”, kas cilpās no 1st līdz pēdējām rindkopām Word dokumentā. Vārdu failā, kurā ir dati, ir 100 informācijas rindas, katra no tām tiek glabāta kā atsevišķa rindkopa. Cilpa palielināsies no 1 līdz 100 un kopēs rindkopas. Ja ir noteikti noteikti nosacījumi, kopēšanas ielīmēšanas pamatā būs šie nosacījumi.
Iestatīt trange = .Range (Sākums: =. Punkti (p). Range.Start, End: =. Punkti (p). Range.End)
Tādējādi katras rindkopas sākums un beigas tiek piešķirtas diapazonam, palielinoties cilpai.
tString = trange.text
tString = pa kreisi (tString, len (tString) -1)
Vispirms teksts no trange tiek nodots TString. Tad katrai rindkopai teikuma beigās ir rindkopas raksturs. Tas tiek noņemts, izmantojot kreiso funkciju. No kreisās puses visas rakstzīmes, izņemot pēdējo, tiek saglabātas mainīgajā tString.
Ja Instr (1, tString, “1”)> 0 Tad
wb. Darblapas (1). Diapazons (“A” & r). Vērtība = tString
r = r+1
Beigas Ja
Šī IF funkcija pārbauda, vai tString tekstā ir skaitlis 1. Ja tā ir patiesa, tad tString saturs tiek kopēts uz nākamo pieejamo darbgrāmatas rindu. “R” vispirms bija vērtība 3. Izmantojot r = r+1, mēs to palielinām par 1, lai nākamo ierakstu varētu novietot zem iepriekšējā ieraksta.
Nākamā p
.Slēgt
The Nākamā p koda pieauguma rindu uz nākamo rindkopu.
.Slēgt aizver dokumentu, kad ir izstrādāti visi punkti. Šī ir izeja, ko iegūstam Excel failā -
Jūs redzēsit, ka iznākumā ir iekļautas tikai tās rindkopas, kurās ir skaitlis 1 jebkurā vietā.
wrdApp. Iziet
Set wrdDoc = Nekas
Iestatīt wrdApp = Nekas
wb. Saglabāts = True
wrdApp.Quit aizvērs vārdu Application. Set wrdDoc = Nekas un Iestatīt wrdApp = Nekas neatbrīvos šo divu objektu mainīgo uzņemto atmiņu un iestatīs tos uz Nekas. wb.Saved = True saglabās darbgrāmatu.
Izmantojot iepriekš minēto kodu, mēs varam kontrolēt, kuri dati tiek kopēti no Word faila uz Excel failu.