VBA įterpti paveikslėlio klaidą - „Excel“ patarimai

Man reikėjo, kad „Excel“ makrokomanda įterptų paveikslėlį į „Excel“. Įsijungiau makrofoną, įdėjau paveikslėlį. Bet kai naudojau tą įrašytą kodą, paveikslėlis nebus rodomas jokiame kitame kompiuteryje. Vietoj to, aš gaunu raudoną X, kur turėtų būti paveikslėlis.

Kodas, naudotas „Excel 2007“ ar ankstesnėse versijose. Bet kažkas pasikeitė „Excel 2010“. Kai paleidžiate kodą į „ActiveSheet.Pictures. Inert“, „Excel“ * ne * įterpia paveikslėlį. Užuot įterpęs nuorodą į paveikslėlį.

Žinoma, paleidus kodą kompiuteryje atrodo, kad viskas pavyko. Pasirodo paveikslėlis.

Panašu, kad makrokomanda veikė.

Bet kai kas atidaro darbaknygę kitame asmeniniame kompiuteryje, gauna raudoną X ir pranešimą, kad paveikslėlis gali būti perkeltas arba pervardytas.

Raudona X vietoj vaizdo

Na, žinoma, vaizdas nėra mano vadybininko kompiuteryje. Aš neprašiau „Excel“ sukurti nuorodą į paveikslėlį. Paprašiau „Excel“ įterpti paveikslėlį. Bet įrašytas kodas įterpia nuorodą į paveikslėlį.

Sprendimas yra pereiti prie kito kodo. Naudodami „Shapes.AddPicture“ galite nurodyti LinkToFile:=msoFalse. Štai kodas, kurį reikia naudoti:

Sub HowToInsertPicture() ' This code fails in 2010 or newer ' ActiveSheet.Pictures.Insert( _ ' "C:UsersBillDesktopPhotoPrintAll RocketaWalg180422-3.jpg.webp").Select NewFN = "C:UsersBillDesktopPhotoPrintAll RocketaWalg180422-3.jpg.webp" ActiveSheet.Shapes.AddPicture(Filename:=NewFN, _ LinkToFile:=msoFalse, _ SaveWithDocument:=msoTrue, _ Left:=1, Top:=1, Width:=140, Height:=195).Select End Sub

Žiūrėti video

Vaizdo įrašo nuorašas

Sužinokite „Excel“ iš „Podcast“, 2214 serija: tikrai erzina VBA klaida, kai bandote įterpti paveikslėlį.

Gerai. Taigi, tai pradėjo vykti programoje „Excel 2010.“. Neseniai aš vėl dėl to sudegiau.

Taigi į šią darbaknygę įterpsiu paveikslėlį, bet noriu įrašyti tą veiksmą, kad galėčiau tai atlikti automatiškai. Peržiūrėti, makrokomandas, įrašymo makrokomandas, „HowToInsertAPicture“. Puikus. Aš čia tiesiog įterpsiu paveikslėlį: Iliustracijos, Paveikslėliai, išsirinkime vieną iš savo raketinių nuotraukų ir „Insert“. Gerai, sustabdykite įrašymą. Graži. Dabar aš to atsikratysiu. Noriu pažvelgti į makrokomandas, taigi „Alt + F8“, „HowToInsertAPicture“, „Redaguoti“ ir sakoma: „ActiveSheet.Pictures“. Įdėkite ir tada kelią į paveikslėlį. Gerai. Taip, tai skamba gerai. Tiesą sakant, turėtume sugebėti tai įgyvendinti. Taigi „Alt + 8“, „HowToInsertAPicture“ ir „Run“ ir gausime nuotrauką - tai gražu. Kol neišsaugosiu šios darbaknygės ir neleisiu ją atsisiųsti ar išsiųsti kam nors kitam, tada paveikslėlis nebus “.Visiškai nepasirodau - viskas, ką gaunu, yra raudonas X, sakantis: Ei, mes nebegalime rasti nuotraukos. Kaip ką reiškia, kad nerandate nuotraukos? Aš paprašiau įterpti paveikslėlį, o ne nuorodą į paveikslėlį. Tačiau nuo „Excel 2010“ šis įrašytas kodas iš tikrųjų įterpia nuorodą į paveikslėlį. Ir jei aš atidarau šią darbaknygę kur nors kompiuteryje, kuriame nėra prieigos prie šio disko ir tos nuotraukos: raudona X. Super erzina.

Gerai. Taigi kažkodėl programoje „Excel 2010“ naujas dalykas, kurį reikia padaryti, yra vietoj „ActiveSheet.Pictures“. Įdėkite „ActiveSheet.Shapes.AddPicture“. Gerai. Ir mes vis tiek galime nurodyti failo pavadinimą, tačiau šie papildomi argumentai, kuriuos turime: LinkToFile = msoFalse - kitaip tariant, nekurkite kvailos raudonos nuorodos - tada „SaveWithDocument: = msoTrue“ - tai reiškia, iš tikrųjų įdėkite nuobodų paveikslėlį ir jie gali nurodyti, kur jis turėtų būti - kairė, viršuje …

Kaip dabar išsiaiškinti aukštį ir plotį? Gerai. Na, mes norime tai pakeisti proporcingai, tiesa? Taigi laikysiu nuspaudęs klavišą „Shift“, kad galėčiau grąžinti mažiau nei vieną ekraną, kuriame pilna duomenų, galbūt ten pat. Taigi tai yra mano tikslas. Noriu įterpti paveikslėlį ir turėti tokio dydžio spindulį su pasirinktu. Grįšiu į VBA Alt + F11, Ctrl + G, kad gautumėte tiesioginį langą, ir paprašysiu:? selection.width-- taigi tai klaustukas, tarpas, pasirinkimo taško plotis ir klaustukas, pasirinkimo taško aukštis (? Selection.height). Gerai, ir tai man pasakoja apie 140 ir 195 - taigi plotis, 140 ir 195, kaip kad. Atsikratykite tiesioginio lango, tada mes tai ištrinsime ir paleisime kodą, ir jis jį iš tikrųjų įterpė. Jis yra tinkamo dydžio, jį galės atidaryti atsisiųsdami,arba atsisiųsti, jei neturite prieigos prie originalaus paveikslėlio.

Suprantu, viskas pasikeičia, jie turėjo pakeisti kodą. Bet tai, kad jie neatnaujino makrokomandos įrašymo įrenginio, o makrofonas davė mums blogą kodą, neveikia. Tai labai erzina.

Ei, sužinok daugiau apie makrokomandas, peržiūrėk šią knygą „Excel 2016 VBA Macros“, kurią sukūrė Tracy Syrstad ir aš pati. Mes iš tikrųjų turime šios versijos versiją kiekvienai versijai, kuri grįžta į „Excel 2003“. Taigi, kad ir ką turėtumėte, jei tai yra „Windows“, yra ir jūsų versija.

Gerai, šiandien baigk - tai mano problema. Įrašiau kodą, kad įterpčiau paveikslėlį, ir tai sukuria nuorodą į paveikslėlį, todėl visi kiti, kuriems siunčiu darbaknygę, nemato paveikslėlio. Vietoj to, aš naudoju makrokomandos įrašymo įrenginį, kuris atlieka „ActiveSheets.Shape.Picture“, naudokite šią naują „ActiveSheet.Shapes.AddPicture“. Arba galime nurodyti „LinkToFile“, ne; taupyti su dokumentu, taip; ir tau bus gera eiti.

Na, ačiū, ačiū, kad žiūrėjote, pasimatysime kitą kartą per kitą internetinę transliaciją.

Atsisiųskite „Excel“ failą

Norėdami atsisiųsti „Excel“ failą: vba-insert-picture-bug.xlsm

Daug kartų „Excel“ makrokomandos įrašo neteisingą kodą. Naudodami aukščiau pateiktą pataisymą, galite sėkmingai įterpti vaizdus naudodami VBA.

„Excel“ dienos mintis

Aš paprašiau savo „Excel Master“ draugų patarimo apie „Excel“. Šiandienos mintis apmąstyti:

„Excel“ yra įrankis, skirtas žmonėms, kurie turi išgyventi pasekmes.

„Oz du Soleil“

Įdomios straipsniai...