Ei-toimivan Excel VBA -makron virheenkorjaus. Excel VBA: ssa on hämmästyttäviä työkaluja, joiden avulla voit nähdä muuttujiin tallennetun nykyisen arvon, kun käydään läpi koodia yksi rivi kerrallaan. Jos sinulla on makro, joka ei toimi,
Katso video
- Sinulla on Excel VBA -makro, joka ei toimi
- VBA: lla on upeita virheenkorjaustyökaluja
- Koodin suorittamisen sijaan voit selata koodia F8: lla
- Keltainen viiva on viiva, jota se ajetaan
- Vie hiiri minkä tahansa muuttujan päälle nähdäksesi muuttujan arvon.
- Vaihda edestakaisin Exceliin nähdäksesi, mitä tapahtuu
Videon transkriptio
Opi Excel Podcastista, jakso 2096: VBA-makron virheenkorjaus
Hei, tervetuloa takaisin netcastiin, olen Bill Jelen. Tämän päivän kysymys: Jolla oli koodi, jonka lähetin vanhaan YouTube-videoon, ja hän lähetti kommentin sanoen: "Ah, se ei toimi. Se ei tallenna kopiota, mutta ei myöskään aiheuta virhettä. " En tiedä mikä koodissa vikaa. Selvä, joten tiedät, katso, siellä on hyviä työkaluja, jotka ovat käytettävissä, kun VBA-makro ei toimi. Joten meillä on täällä painike, jonka pitäisi suorittaa koodi. Aion määrittää Makron, sitä kutsutaan SaveInvoice. Napsautan Muokkaa ja olemme yli VBA: ssa. Ja normaalisti, kun painamme kyseistä painiketta, se vain suorittaa tämän koodin. BAM! Kuten kaikki tapahtui todella nopeasti, mutta et voi katsella mitä tapahtuu.
Joten Debug-työkalujen alla yksi suosikkini on Debug Step Into, jonka näet, että pikanäppäin on F8, ja sen avulla voimme suorittaa koodin yksi rivi kerrallaan. Joten painin F8 siellä ja tämä on - viiva keltaisella on viiva, jonka se on aikeissa suorittaa. Joten jos painan F8, se hyppää näiden kahden ilmoituksen yli ja nyt olemme tekemässä ActiveSheet.Copy. Joten mikä on todella kaunista, on, tiedäthän, varsinkin jos sinulla on suuri näyttö, että Podcast-ikkuna on aivan liian pieni, mutta voit tehdä sen, että voit katsella makroa. Joten juuri nyt se tekee ActiveSheet.Copy. Juuri tällä hetkellä olen työkirjassa nimeltä Podcast 2096. Tässä on laskutaulukko ja kun painan F8-näppäintä, huomaat, että olen nyt aivan uudessa Book2-nimisessä työkirjassa ja meillä on vain Lasku, kunnossa.
Ja nyt aiomme määrätä tämän suuren, pitkän asian New FN: lle. Paina F8. Selvä, nyt ei näyttänyt siltä, että mitään tapahtui täällä, koska täällä ei tapahtunut mitään. Mutta tässä on kaunis asia, olen nyt määrittänyt jotain tälle muuttujalle nimeltä Uusi FN, ja jos otan hiireni ja vietään hiiren osoittimen uuden FN: n päälle, näkyviin tulee pieni työkaluvinkki, joka näyttää minulle, mitä New FN: ään on tallennettu. Joten se tallentaa tiedostonimen, siellä on kansio, johon se menee. Sitä kutsutaan Invoice1234, koska se otti arvon F4: stä ja lisäsi sitten PDF: n.
Hyvä on, yksi turhauttavimmista asioista Excelissä on, että jos muistisi alkaa olla vähissä, tämä työkaluvihje ei halua ilmestyä. Sinä leijut siellä, eikä mitään tapahdu. Joskus joudut napsauttamaan, jotta voit tehdä sen täällä, ja joskus se ei vain näy ollenkaan. Kun se ei tule ollenkaan näkyviin, voimme tehdä vain Ctrl + G. Ctrl + G on välitön ikkuna ja sitten aiomme käyttää? joka on pikakuvake Debug.Print, NewFN. Joten toisin sanoen, kerro minulle, mikä on New FN: ssä, ja se näyttää sinulle, mikä on New FN: ssä.
Selvä, joten nyt aiomme suorittaa tämän koodirivin, joka luo PDF-tiedoston. Selvä, joten painan F8. Selvä, ja tässä vaiheessa meillä pitäisi olla uusi PDF-tiedosto, jossa on 1234, ja jos menen katsomaan kansiota, varmasti luotiin juuri Inv1234 11. toukokuuta klo 6.25. Mahtavaa, eikö?
Selvä, nyt olemme menossa pisteeseen, jossa meillä on ongelma. Selvä, joten painamme F8-näppäintä tässä ja se näkyy kaksoiskopiona. Selvä, se toimi. Ja sitten F8, ja voimme nähdä, mitä New FN sisältää. Selvä, joten sillä on DupInv1234.pdf, ja voit jopa palata tänne alas ja napsauttaa vain Print NewFN -kuvaketta ja näet, että olemme muuttaneet tiedostonimen, ok. Joten kaikki on hienoa. Ja sitten painamme F8 suorittaa PDF-tiedoston luominen. Mahtava! Kaikki näyttää hyvältä, eikö?
Palaa siis Podcast-tiedostoihimme. Selvä, mutta sen sijaan, että minulla olisi jotain nimeltä DupInv1234, en vain tiedä, miten jotain kutsutaan Book2: ksi. Selvä, se luotiin juuri minuutti sitten. Tämän on oltava yksi mutta gee! Vaikuttaa siltä, että se on väärä nimi. Selvä, joten palaamme takaisin VBA: lle ja tiedän, että annoin juuri oikean arvon uudelle FN: lle. Katsotaanpa, mitä me tallennamme sen nimellä. Tallennamme sen nimellä NewFN1, joka on tyhjä; ja koska se on tyhjä, se tarkoittaa, että se ottaa tiedostonimen, joka tässä tapauksessa on Book2, koska tein siitä kopion. Ja muutin sitä - katso! Joten tässä osoitin nimen NewFN: lle ja tallensin sitten tämän NewFN1: n, ja nyt koska olen virheenkorjauksessa ja leijuu - Leijuminen on suurin asia koskaan. Toivottavasti pystyn selvittämään mitä tapahtuu.Joten palaan takaisin ja vaihdan NewFN1: n. Tässä on mahtava asia. Selvä, joten jo ohittanut tämän rivin makrolla, mutta voin vetää tämän takaisin ylös ja sanoa, olkoon, ajetaan tämä uudelleen F8. Ja nyt luodaan PDF. Selvä, ja siellä se näkyy oikealla nimellä ja kaikki on hienoa.
Selvä, nyt kun tiedän, että olen valmis, kaikki on hienoa. Kaikki toimii täältä. Napsautan vain Suorita ja se juoksee koodin loppuun. Selvä, joskus sinulla on pitkä makro, tiedätkö, satoja koodiriviä, jotka toimivat, ja sitten yksi tietty osa, joka ei toimi, okei? Joten muutama muu työkalu mainittiin juuri täällä. Jos sinun täytyy hypätä yli koko joukko koodia ja suorittaa kaikki siihen pisteeseen asti, yksi tapa tehdä se on napsauttaa tätä ja luoda Breakpoint. Selvä, joten nyt kun suoritan tämän, se ajaa kaiken siihen pisteeseen. Voin vain napsauttaa Suorita ja se pysähtyy, tai jos et edes halua asettaa Breakpointia, napsautamme juuri täällä ja sanomme Debug, Run To Cursor. Suorita kohdistimeen.Nyt tiedän, että tämä aiheuttaa ongelman tässä, koska koodia tämän laskunumeron muuttamiseksi en vielä kytkenyt. Joten laitan vain uuden laskunumeron ja olen tällä rivillä juuri nyt. Virheenkorjaus, Suorita kohdistimeen, joka on Ctrl + F8. Selvä, joten nyt se juoksi kaiken siihen pisteeseen, ja mitä meidän pitäisi olla, meidän pitäisi pystyä näkemään, että se juuri loi Inv1235: n, okei. Ja nyt on kyse - olemme tällä koodirivillä. Voin vain painaa F8 juostaaksesi yhden linjan tai vain juosta lopputien. Ja siellä on DupInv1235, okei? Joten Debug-työkalut täällä VBA: ssa ovat mahtavia. Oletetaan, että suoritat koodin yksi rivi kerrallaan, järjestä näyttösi niin, että voimme nähdä sekä käynnissä olevan koodin että koodin tulokset vasemmalla puolella. Ja tiedät, toivottavasti, voit selvittää, mikä koodissa menee pieleen.
Selvä, joten jakson yhteenveto: Ota Excel VBA -makro, joka ei toimi. Siinä on upeita virheenkorjaustyökaluja. Koodin suorittamisen sijaan voit selata koodia F8: lla. Keltainen viiva on juova, joka on ajettavissa. Voit nähdä hiiren muuttujan päällä nähdäksesi muuttujan arvon, siirtyä edestakaisin Exceliin nähdäksesi, mitä tapahtuu.
Hei, haluan kiittää sinua pysähtymisestä. Nähdään ensi kerralla toisesta netcastista.
Lataa tiedosto
Lataa esimerkkitiedosto täältä: Podcast2096.xlsm