VBA Lisää kuvavirhe - Excel-vinkkejä

Minulla oli oltava Excel-makro, joka lisäsi kuvan Exceliin. Käynnistin makrotallentimen, asetin kuvan. Mutta kun käytin nauhoitettua koodia, kuva ei näy missään muussa tietokoneessa. Sen sijaan saan punaisen X: n, missä kuvan pitäisi olla.

Koodi, jota käytettiin Excel 2007: ssä tai aiemmassa versiossa. Mutta jotain muuttui Excel 2010: ssä. Kun suoritat koodin ActiveSheet.Pictures.Insert-sovellukseen, Excel ei * lisää * kuvaa. Sen sijaan se lisää linkin kuvaan.

Tietenkin, kun suoritat koodin tietokoneellasi, näyttää siltä, ​​että kaikki toimi. Kuva tulee näkyviin.

Näyttää siltä, ​​että makro toimi.

Mutta kun joku avaa työkirjan toisella tietokoneella, hän saa punaisen X: n ja viestin, että kuva on ehkä siirretty tai nimetty uudelleen.

Punainen X kuvan sijaan

No, tietysti kuvaa ei ole esimieheni tietokoneella. En pyytänyt Exceliä luomaan linkkiä kuvaan. Pyysin Excelin lisäämään kuvan. Nauhoitettu koodi lisää kuitenkin linkin kuvaan.

Ratkaisu on vaihtaa eri koodiin. Käyttämällä Shapes.AddPicture-ohjelmaa voit määrittää LinkToFile:=msoFalse. Tässä on käytettävä koodi:

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

Katso video

Videon transkriptio

Opi Excel Podcastista, jakso 2214: todella ärsyttävää VBA-virhettä, kun yrität lisätä kuvaa.

Hyvä on. Joten, hei, tämä alkoi tapahtua Excel 2010: ssä. Sain juuri palanut siihen hiljattain.

Joten aion lisätä kuvan tähän työkirjaan, mutta haluan tallentaa toiminnon, jotta voin tehdä sen automaattisesti. Näytä, makrot, tallenninmakro, HowToInsertAPicture. Täydellinen. Ja aion vain lisätä kuvan tähän: Kuvat, Kuvat, valitaan yksi rakettikuvistamme ja Lisää. Selvä, lopeta nauhoitus. Kaunis. Aion päästä eroon siitä. Haluan vilkaista makroja, joten Alt + F8, HowToInsertAPicture, Edit ja siinä sanotaan tämä: ActiveSheet.Pictures.Insert ja sitten polku kuvaan. Hyvä on. Joo, se kuulostaa hyvältä. Ja itse asiassa meidän pitäisi pystyä ajamaan tämä. Joten Alt + 8, HowToInsertAPicture ja Run, niin saamme kuvan - se on kaunista. Kunnes tallennan tämän työkirjan ja annan sinun ladata sen tai lähettää sen jollekulle muulle, niin kuva eien näy lainkaan - saan vain punaisen X: n sanoen: Hei, emme enää löydä kuvaa. Mitä tarkoitat, ettet löydä kuvaa? Pyysin sinua lisäämään kuvan, ei linkkiä kuvaan. Excel 2010: stä lähtien tämä tallennettu koodi lisää itse asiassa linkin kuvaan. Ja jos avaan tämän työkirjan jossain tietokoneessa, jolla ei ole pääsyä tähän asemaan ja kuvaan: punainen X. Erittäin ärsyttävää.

Hyvä on. Joten jostain syystä uusi tehtävä Excel2010: ssä on ActiveSheet.Pictures.Insert-toiminnon sijaan ActiveSheet.Shapes.AddPicture. Hyvä on. Ja voimme silti määrittää tiedostonimen, mutta sitten nämä ylimääräiset argumentit, jotka meillä on: LinkToFile = msoFalse - toisin sanoen, älä luo tyhmää punaista linkkiä - ja sitten SaveWithDocument: = msoTrue - mikä tarkoittaa oikeastaan laita pirun kuva sinne ja he voivat määrittää, missä sen pitäisi olla - vasen, ylhäältä …

Kuinka voimme selvittää korkeuden ja leveyden? Hyvä on. No, haluamme muuttaa tämän kokoa suhteellisesti, eikö? Joten aion pitää Shift-näppäintä, kuten, palautan tämän takaisin alle yhteen näyttöön, joka on täynnä tietoja, ehkä tuollaista. Joten se on tavoitteeni. Haluan lisätä kuvan ja saada sen kokoinen säde valitun kanssa. Palaan VBA Alt + F11, Ctrl + G välittömään ikkunaan ja pyydän:? selection.width-- eli kysymysmerkki, välilyönti, valintapisteen leveys ja kysymysmerkki, valintapisteen korkeus (? Selection.height). Selvä, ja se kertoo minulle 140: stä ja 195: sta, joten leveydet, 140 ja 195, tuollainen. Päästä eroon välittömästä ikkunasta, ja sitten tässä poistamme tämän ja suoritamme koodin, ja se itse asiassa lisäsi sen. Se on oikean kokoinen, se voi olla auki, kun lataat tämän,tai lataan tämän, jos sinulla ei ole pääsyä alkuperäiseen kuvaan.

Saan sen, asiat muuttuvat, heidän oli muutettava koodi. Mutta se, että he eivät päivittäneet makrotallenninta, ja makrotallennin antoi meille huonon koodin, se ei toimi. Se on erittäin ärsyttävää.

No, hei oppia lisää makroista tutustu tähän kirjaan, Tracy Syrstadin ja minä, Excel 2016 VBA -makrot. Meillä on oikeastaan ​​versio tästä jokaiselle versiolle, joka palaa Excel 2003: een. Joten mitä sinulla on, edellyttäen että se on Windows, on olemassa versio sinulle.

Selvä, kääri tänään - se on minun ongelmani. Nauhoitin koodin kuvan lisäämiseksi ja se luo linkin kuvaan, joten kukaan muu, jolle lähetän työkirjan, ei näe kuvaa. Sen sijaan käytän makrotallenninta, joka tekee ActiveSheets.Shape.Picture, käytä tätä uutta ActiveSheet.Shapes.AddPicture. Tai voimme määrittää LinkToFile, ei; tallenna asiakirjalla, kyllä; ja sinulla on hyvä mennä.

No, hei, kiitos katsomisesta, nähdään ensi kerralla uudesta netcastista.

Lataa Excel-tiedosto

Excel-tiedoston lataaminen: vba-insert-picture-bug.xlsm

Usein Excelin makrotallennin tallentaa väärän koodin. Yllä olevan korjauksen avulla voit lisätä kuvia onnistuneesti VBA: lla.

Päivän Excel-ajatus

Olen pyytänyt Excel Master -kaveriltani neuvoja Excelistä. Tämän päivän ajatus miettiä:

"Excel on työkalu, joka palvelee ihmisiä, joiden on elettävä seurausten kanssa."

Oz du Soleil

Mielenkiintoisia artikkeleita...