Datu izvilkšana no slēgta faila citā darbgrāmatā ir bieži sastopams Excel lietotāja pieprasījums. Viņi vēlētos iegūt vai konsolidēt datus no slēgtiem failiem; tomēr tas nav iespējams. Pastāv risinājums, kas palīdz atrisināt šo problēmu. Risinājums ir makro koda izmantošana.
Jautājums: Ikdienā es pavadu laiku, kopējot datus no viena faila uz citu. Ir divi faili “Open.xls” un “Closed.xls”, un es vēlos kopēt datus no “Closed.xls” uz “Open.xls”, izmantojot VBA kodu.
Galvenās lietas, kas jāzina:
- Pirmā lieta, mums vajadzētu zināt slēgtās darbgrāmatas “Usedrange”, t.i., “Closed.xls” atvērtajā darbgrāmatā, piemēram, “Open.xls”
- Mēs varam izmantot IF funkciju darbgrāmatas “Closed.xls” darbgrāmatas Usedrange sadaļā “Open.xls” darbgrāmatā, un tā iegūs datus no “Closed.xls” darbgrāmatas
- Ja atsauces šūna ir tukša, tiek ievietots #N/A. Izmantojot speciālo šūnu metodi, varat izdzēst visas #N/A kļūdas un mainīt formulu uz vērtībām
Lai sāktu ar to, mēs saglabāsim divus Excel failus 1) Open.xls 2) Closed.xls ceļā “D: \ Test Folder”
Tālāk ir redzams darbgrāmatas “Closed.xls” momentuzņēmums:
Lai automātiski saglabātu datus no faila “Closed.xls” uz “Open.xls” failu, mums ir jāveic šādas darbības, lai palaistu VB redaktoru
- Noklikšķiniet uz cilnes Izstrādātājs
- Kodu grupā atlasiet Visual Basic
- Nokopējiet zemāk esošo kodu šajā darbgrāmatā (Closed.xls)
Privāta apakšdarbgrāmata_BeforeSave (ByVal SaveAsUI kā Būla, _ Atcelt kā Būla) 'Ievietojiet lietotnes diapazona adresi Sheet1 Closed.xls (šī darbgrāmata)'-Komentāru lapa2. Šūnas (1, 1) = Sheet1.UsedRange.Address End Sub
- Lai izvilktu datus sadaļā “Open.xls”, standarta modulī nokopējiet šādu kodu
Sub Importdata () Dim AreaAddress As String Sheet1.UsedRange.Clear Sheet1.Cells (1, 1) = "= 'D: \ Test Folder \" & "[Closed.xls] Sheet2'! RC" AreaAddress = Sheet1.Cells ( 1, 1) Ar Sheet1.Range (AreaAddress). FormulaR1C1 = "= IF ('D: \ Test Folder \" & "[Closed.xls] Sheet1'! RC =" "" ", NA (), 'D: \ Test Folder \ "& _" [Closed.xls] Sheet1 '! RC) "On Error Resume Next .SpecialCells (xlCellTypeFormulas, xlErrors). Notīrīt kļūdu GoTo 0 .Value = .Value End with End Sub
- Kopējiet šo kodu šajā darbgrāmatā (Open.xls)
Privāta apakšdarbgrāmata_Atvērt () Palaidiet beigu apakšdaļu "Importēt datus"
Tagad visi VBA kodi ir iestatīti; viss, kas mums jādara, ir atvērt faila nosaukumu “Open.xls”. Tālāk ir redzams faila “Open.xls” momentuzņēmums:
Kods neaprobežojas tikai ar šūnu kopiju no A1.usedrange; kods izvēlēsies sākuma diapazonu un darbosies lieliski. Faili ir pieejami lejupielādei, un mēs iesakām jums to izmēģināt.
Secinājums: Izmantojot VBA kodu, mēs varam automatizēt datu ieguves uzdevumu, neatverot mērķa darbgrāmatu, un mēs ietaupām sevi no manuālas kopēšanas un ielīmēšanas.
Ja jums patika mūsu emuāri, kopīgojiet to ar saviem draugiem Facebook. Un arī jūs varat sekot mums Twitter un Facebook.
Mēs labprāt uzklausītu jūsu viedokli, dariet mums zināmu, kā mēs varam uzlabot, papildināt vai ieviest jauninājumus mūsu darbā un uzlabot to jūsu labā. Rakstiet mums e -pasta vietnē