Turinys
Ryšys yra labai naudinga „Excel“ funkcija. Juk labai dažnai vartotojai turi naudoti informaciją iš kitų failų. Tačiau kai kuriais atvejais jie gali padaryti daugiau žalos nei naudos. Galų gale, pavyzdžiui, jei siunčiate šiuos failus paštu, nuorodos neveikia. Šiandien mes kalbėsime išsamiau apie tai, ką daryti, kad išvengtumėte tokios problemos.
Kas yra santykiai programoje Excel
„Excel“ ryšiai labai dažnai naudojami kartu su funkcijomis, pvz VPRgauti informaciją iš kitos darbaknygės. Tai gali būti specialios nuorodos, kurioje yra ne tik langelio, bet ir knygos, kurioje yra duomenys, adresas. Dėl to tokia nuoroda atrodo maždaug taip: =VLOOKUP(A2;'[Pardavimas 2018.xlsx]Ataskaita'!$A:$F;4;0). Arba, kad būtų paprasčiau, nurodykite adresą tokia forma: ='[Pardavimas 2018.xlsx]Pranešimas'!$A1. Išanalizuokime kiekvieną šio tipo nuorodos elementą:
- [Pardavimas 2018.xlsx]. Šiame fragmente yra nuoroda į failą, iš kurio norite gauti informaciją. Jis taip pat vadinamas šaltiniu.
- nuotraukos. Naudojome šį pavadinimą, bet tai neturėtų būti. Šiame bloke yra lapo, kuriame reikia rasti informacijos, pavadinimas.
- $A:$F ir $A1 – langelio arba diapazono, kuriame yra duomenų, esančių šiame dokumente, adresas.
Tiesą sakant, nuorodos su išoriniu dokumentu kūrimo procesas vadinamas susiejimu. Užregistravus kitame faile esančios ląstelės adresą, keičiasi skirtuko „Duomenys“ turinys. Būtent suaktyvėja mygtukas „Keisti ryšius“, kurio pagalba vartotojas gali redaguoti esamus ryšius.
Problemos esmė
Paprastai naudojant nuorodas nekyla jokių papildomų sunkumų. Net jei susidaro situacija, kai ląstelės keičiasi, visos nuorodos automatiškai atnaujinamos. Bet jei jau pervardijate pačią darbaknygę arba perkeliate ją kitu adresu, „Excel“ tampa bejėgė. Todėl jis sukuria tokį pranešimą.
Čia vartotojas turi du galimus veiksmus, kaip elgtis šioje situacijoje. Jis gali spustelėti „Tęsti“ ir tada pakeitimai nebus atnaujinti, arba jis gali spustelėti mygtuką „Keisti asociacijas“, su kuriuo gali juos atnaujinti rankiniu būdu. Paspaudus šį mygtuką, atsiras papildomas langas, kuriame bus galima keisti nuorodas, nurodant, kur šiuo metu yra tinkamas failas ir kaip jis vadinasi.
Be to, nuorodas galite redaguoti naudodami atitinkamą mygtuką, esantį skirtuke „Duomenys“. Vartotojas taip pat gali sužinoti, kad ryšys nutrūko dėl klaidos #LINK, kuri atsiranda, kai "Excel" negali pasiekti informacijos, esančios konkrečiu adresu, nes pats adresas yra neteisingas.
Kaip atsieti programoje excel
Vienas iš paprasčiausių būdų, kaip išspręsti aukščiau aprašytą situaciją, jei negalite patys atnaujinti susieto failo vietos, yra ištrinti pačią nuorodą. Tai ypač lengva padaryti, jei dokumente yra tik viena nuoroda. Norėdami tai padaryti, turite atlikti šią veiksmų seką:
- Atidarykite meniu „Duomenys“.
- Randame skyrių „Ryšiai“, o ten – parinktį „Keisti ryšius“.
- Po to spustelėkite „Atjungti“.
Jei ketinate išsiųsti šią knygą kitam asmeniui, labai rekomenduojama tai padaryti iš anksto. Galų gale, ištrynus nuorodas, visos reikšmės, esančios kitame dokumente, bus automatiškai įkeltos į failą, naudojamos formulėse, o vietoj langelio adreso informacija atitinkamuose langeliuose bus tiesiog paversta į reikšmes. .
Kaip atsieti visas knygas
Tačiau jei nuorodų skaičius tampa per didelis, rankinis jų ištrynimas gali užtrukti ilgai. Norėdami išspręsti šią problemą vienu ypu, galite naudoti specialią makrokomandą. Jis yra VBA-Excel priede. Turite jį suaktyvinti ir eiti į to paties pavadinimo skirtuką. Bus skyrius „Nuorodos“, kuriame turėsime spustelėti mygtuką „Sulaužyti visas nuorodas“.
VBA kodas
Jei šio priedo suaktyvinti neįmanoma, makrokomandą galite susikurti patys. Norėdami tai padaryti, atidarykite „Visual Basic“ rengyklę paspausdami klavišus Alt + F11 ir kodo įvesties lauke įveskite šias eilutes.
Sub Atsieti darbo knygas ()
Pritemdyti WbLinks
Pritemęs ir toks pat ilgas
Pasirinkite Case MsgBox ("Visos nuorodos į kitas knygas bus pašalintos iš šio failo, o formulės, nurodančios kitas knygas, bus pakeistos reikšmėmis." & vbCrLf & "Ar tikrai norite tęsti?", 36, "Atsieti?" )
Byla 7′ Nr
Išeiti iš sub
Pabaigos pasirinkimas
WbLinks = ActiveWorkbook.LinkSources(Tipas:=xlLinkTypeExcelLinks)
Jei Ne IsEmpty (WbLinks) Tada
Jei i = 1 iki UBound (WbLinks)
ActiveWorkbook.BreakLink pavadinimas:=WbLinks(i), tipas:=xlLinkTypeExcelLinks
Sekantis
kitas
MsgBox „Šiame faile nėra nuorodų į kitas knygas“, 64, „Nuorodos į kitas knygas“
End If
End Sub
Kaip nutraukti ryšius tik pasirinktame diapazone
Retkarčiais nuorodų skaičius būna labai didelis, o vartotojas baiminasi, kad ištrynus vieną iš jų nebus įmanoma visko grąžinti, jei kai kurios jų buvo perteklinės. Tačiau tai yra problema, kurios lengva išvengti. Norėdami tai padaryti, turite pasirinkti diapazoną, kuriame norite ištrinti nuorodas, tada jas ištrinti. Norėdami tai padaryti, turite atlikti šią veiksmų seką:
- Pasirinkite duomenų rinkinį, kurį reikia keisti.
- Įdiekite VBA-Excel priedą ir eikite į atitinkamą skirtuką.
- Tada randame meniu „Nuorodos“ ir spustelėkite mygtuką „Nutraukti nuorodas pasirinktuose diapazonuose“.
Po to visos nuorodos pasirinktame langelių rinkinyje bus ištrintos.
Ką daryti, jei ryšiai nenutrūko
Visa tai, kas išdėstyta aukščiau, skamba gerai, tačiau praktikoje visada yra tam tikrų niuansų. Pavyzdžiui, gali būti situacija, kai ryšiai nenutrūksta. Tokiu atveju vis tiek pasirodo dialogo langas, nurodantis, kad automatiškai atnaujinti nuorodų neįmanoma. Ką daryti šioje situacijoje?
- Pirmiausia turite patikrinti, ar įvardytuose diapazonuose yra informacijos. Norėdami tai padaryti, paspauskite klavišų kombinaciją Ctrl + F3 arba atidarykite skirtuką „Formulės“ - „Vardų tvarkyklė“. Jei failo pavadinimas pilnas, tereikia jį redaguoti arba visiškai pašalinti. Prieš ištrindami pavadintus diapazonus, turite nukopijuoti failą į kitą vietą, kad galėtumėte grįžti į pradinę versiją, jei buvo atlikti neteisingi veiksmai.
- Jei negalite išspręsti problemos pašalinę pavadinimus, galite patikrinti sąlyginį formatavimą. Kitos lentelės langeliai gali būti nurodyti sąlyginio formatavimo taisyklėse. Norėdami tai padaryti, skirtuke „Pagrindinis“ raskite atitinkamą elementą ir spustelėkite mygtuką „Failų tvarkymas“.
Paprastai „Excel“ nesuteikia galimybės pateikti kitų darbaknygių adresų esant sąlyginiam formatavimui, bet jūs tai darote, jei nurodote pavadintą diapazoną su nuoroda į kitą failą. Paprastai, net ir pašalinus nuorodą, nuoroda išlieka. Pašalinti tokią nuorodą nėra problemų, nes nuoroda iš tikrųjų neveikia. Todėl nieko blogo nenutiks, jei jį pašalinsite.
Taip pat galite naudoti „Duomenų tikrinimo“ funkciją, kad sužinotumėte, ar nėra nereikalingų nuorodų. Nuorodos paprastai išlieka, jei naudojamas duomenų patvirtinimo tipas „Sąrašas“. Bet ką daryti, jei ląstelių yra daug? Ar tikrai būtina kiekvieną iš jų tikrinti paeiliui? Žinoma ne. Juk tai užtruks labai ilgai. Todėl norint jį žymiai išsaugoti, reikia naudoti specialų kodą.
Aiški parinktis
'——————————————————————————————
Autorius: The_Prist (Dmitrijus Ščerbakovas)
Profesionalus bet kokio sudėtingumo MS Office programų tobulinimas
Mokymų vedimas MS Excel programa
https://www.excel-vba.ru
' [apsaugotas el. paštas]
„WebMoney“ – R298726502453; „Yandex.Money“ – 41001332272872
'Paskirtis:
'——————————————————————————————
Sub FindErrLink()
Turime pažvelgti į duomenų keitimo nuorodas į šaltinio failą
ir padėkite raktinius žodžius čia mažosiomis raidėmis (failo pavadinimo dalis)
Žvaigždutė tiesiog pakeičia bet kokį simbolių skaičių, todėl jums nereikės jaudintis dėl tikslaus pavadinimo
Const sToFndLink$ = „*pardavimai 2018 m.*“
Dim rr As Range, rc As Range, rres As Range, s$
Apibrėžkite visus langelius su duomenų patvirtinimu
On Error Resume Toliau
Nustatyti rr = ActiveSheet.UsedRange.SpecialCells(xlCellTypeAllValidation)
Jei rr yra nieko, tada
MsgBox „Aktyviame lape nėra langelių su duomenų patvirtinimu“, „vbInformation“, „www.excel-vba.ru“
Išeiti iš sub
End If
Dėl klaidos GoTo 0
Patikrinkite kiekvieną langelį, ar nėra nuorodų
Kiekvienam rc In rr
'tik tuo atveju, praleidžiame klaidas – taip irgi gali atsitikti
Bet mūsų ryšiai turi būti be jų ir jie tikrai bus rasti
s = «»
On Error Resume Toliau
s = rc.Patvirtinimas.Formulė1
Dėl klaidos GoTo 0
'rasta – viską renkame į atskirą asortimentą
Jei LCase (-os) patinka sToFndLink Tada
Jei rres yra nieko tada
Nustatyti rres = rc
kitas
Nustatyti rres = Sąjunga(rc, rres)
End If
End If
Sekantis
'Jei yra ryšys, pažymėkite visus langelius su tokiais duomenų patikrinimais
Jei ne rres yra nieko tada
rres.Pasirinkite
" rres.Interior.Color = vbRed "jei norite paryškinti spalva
End If
End Sub
Makrokomandų rengyklėje reikia sukurti standartinį modulį ir ten įterpti šį tekstą. Po to iškvieskite makrokomandos langą naudodami klavišų kombinaciją Alt + F8, tada pasirinkite mūsų makrokomandą ir spustelėkite mygtuką „Vykdyti“. Naudojant šį kodą reikia atsiminti keletą dalykų:
- Prieš ieškodami nebeaktualios nuorodos, pirmiausia turite nustatyti, kaip atrodo nuoroda, per kurią ji sukurta. Norėdami tai padaryti, eikite į meniu „Duomenys“ ir ten raskite elementą „Keisti nuorodas“. Po to turite pažvelgti į failo pavadinimą ir nurodyti jį kabutėse. Pavyzdžiui, taip: Const sToFndLink$ = „*pardavimai 2018 m.*“
- Pavadinimą galima parašyti ne visą, o tiesiog pakeisti nereikalingus simbolius žvaigždute. O kabutėse failo pavadinimą parašykite mažomis raidėmis. Tokiu atveju „Excel“ suras visus failus, kurių pabaigoje yra tokia eilutė.
- Šis kodas gali patikrinti tik šiuo metu aktyviame lape esančias nuorodas.
- Naudodami šią makrokomandą galite pasirinkti tik tuos langelius, kuriuos ji rado. Viską reikia ištrinti rankiniu būdu. Tai yra pliusas, nes galite dar kartą viską patikrinti.
- Taip pat galite paryškinti ląsteles specialia spalva. Norėdami tai padaryti, pašalinkite apostrofą prieš šią eilutę. rres.Interjeras.Spalva = vbRed
Paprastai, atlikus aukščiau pateiktose instrukcijose aprašytus veiksmus, nebeturi būti nereikalingų jungčių. Bet jei dokumente jų yra ir dėl vienokių ar kitokių priežasčių negalite jų pašalinti (tipiškas pavyzdys yra duomenų saugumas lape), tuomet galite naudoti kitą veiksmų seką. Ši instrukcija galioja tik 2007 ir naujesnėms versijoms.
- Sukuriame atsarginę dokumento kopiją.
- Atidarykite šį dokumentą naudodami archyvatorių. Galite naudoti bet kurį, palaikantį ZIP formatą, bet WinRar taip pat veiks, taip pat įtaisytą sistemoje Windows.
- Pasirodžiusiame archyve turite rasti aplanką xl ir atidaryti išorines nuorodas.
- Šiame aplanke yra visos išorinės nuorodos, kurių kiekviena atitinka išorinės nuorodos1.xml formos failą. Visi jie yra tik sunumeruoti, todėl vartotojas neturi galimybės suprasti, koks tai ryšys. Norėdami suprasti, koks ryšys, turite atidaryti aplanką _rels ir ten jį pažiūrėti.
- Po to pašaliname visas arba konkrečias nuorodas, atsižvelgdami į tai, ką sužinojome faile externalLinkX.xml.rels.
- Po to atidarome failą naudodami „Excel“. Bus informacijos apie klaidą, pvz., „Knygos turinio dalies klaida“. Mes duodame sutikimą. Po to pasirodys kitas dialogo langas. Uždarome.
Po to visos nuorodos turėtų būti pašalintos.