Vaša email adresa neće biti objavljena. obavezna polja su označena *

Oprosti - nisam razmišljao o tome kako će kôd izgledati u poslanom komentaru. Izbrišite ako želite i ponovno ću objaviti u boljem formatu.

Što se tiče komentara da je VBA arhaičan, smatrao sam ga zaista korisnim. To mi je omogućilo da tjedan procesa u mom timu pretvorim u proces od 10 minuta. Omogutio mi je da smanjim raspon aktivnosti koje moj tim automatizira gotovo sve.

Mogli ste primijeniti AD provjere, izvaditi podatke iz različitih baza podataka operativnih sustava i smanjiti sve dosadne SQL upite zatim rezanje i lijepljenje.

Promijenio je posao koji zahtijeva više upita, ručno generirajući više poruka e-pošte u jedan klik gumba.

Apsolutno ga volim, arhaično ili ne.

Prije nekog vremena našao sam nešto u vezi s tim i razvio aplikaciju temeljenu na Excelu koja mi je omogućila da pratim broj „Likes“ na skupu određenih Facebook stranica. Od tada sam to proširio da bih koristio VBA za dobivanje svih vrsta informacija na raznim web stranicama.

instagram viewer

Trenutno je moj problem što imam problema s IE-om i skloni smo upotrebi Chromea.

Kako mogu prevesti vrstu koda koju imate gore, tako da radi isto, ali koristeći Chrome kao preglednik. Pomoću naredbe Shell mogu otvoriti preglednik Chrome i otići na određeni URL, ali ne mogu shvatiti kako izvući podatke s te stranice.

Kao primjer, moj Facebook kod je:

Pod GetLikes () Dim IeApp kao InternetExplorerDim sURL Kao StringDim IeDoc kao ObjectDim i kao Longdebugmode = False If debugmode, tada otvorite "c: VBAoutputvbaOutput.txt "Za dodavanje kao # 1" Stvorite novu instancu IE Set IeApp = Novi InternetExplorer "Učinite to vidljivim - neke stvari ne funkcioniraju osim ako to je vidljiv IeApp. Vidljivo = ispravljanje pogrešaka za svaki mc u izboru 'odredite stranicu za otvaranje sURL = mc' Pronađite stupac chkDate = Postavite datum c = raspon ("2: 2"). (chkDate) Ako c nije ništa, onda je mojCol = raspon ("2: 2"). Pronađi (što: = "*", searchdirection: = xlPrevious) .Column + 1 ćelije (1, myCol) = "Status" ćelije (1, myCol + 1) = "Sviđa" ćelije (1, myCol + 2) = "Veze" ćelije (2, myCol) = chkDate ćelije (2, myCol + 1) = chkDate stanice (2, myCol + 2) = chkDate Ostalo myCol = c. Kraj stupca Ako 'mc. Pomak (0, 1) .Value = Datum jeDown = mc. Pomak (0, 3) .Value Ako jeDown = "Stranica dolje", tada pageDown = "Stranica dolje" numlikes = "" numlinks = "" doNothing = True Else "prijeđite na stranicu IeApp. Navigirajte sURL 'Pauzirajte makronaredbu petljom dok stranica ne bude potpuno učitana Do petlje dok IeApp. ReadyState = READYSTATE_COMPLETE 'pohranjuje objekt Document Set IeDoc = IeApp. Dokument o pogrešci Nastavi Sljedeći kodovi = IeDoc. Body.innertext Ako je greška. Broj 0 Zatim Err. Clear GoTo Skiploop End Ako je na pogrešci GoTo 0 Ako je ispravljanje pogrešaka, tada napišite # 1, kod i vbCrLf & vbCrLf numlinks = IeDoc. Linkovi. Duljina a = IeApp. Otklanjanje pogrešaka LocationName '. Stranica za ispis kodovaDown = Istina je isPageStats = InStr (kodovi, "placePageStatsNumber") isGroup = InStr (kodovi, "uiButtonText> Pridruži se") isOldGroup = InStr (kodovi, "Ova grupa treba zakazati arhivirano ") isOpenGroup = InStr (kodovi," Otvorena grupa ") isEvent = InStr (kodovi," Javni događaj ") isClosedGroup = InStr (kodovi," Zatvorena grupa ") IsOpen = InStr (kodovi, a) isCommonInterest = InStr (kodi, "Zajednički interes") isMovie = InStr (kodovi, "Movieu003c") isNumberGiant = InStr (kodovi, "uiNumberGiant") notFound = InStr (kodovi, "Stranica koju ste tražili nije pronađena") profileUnavailable = InStr (a, "Profil nije dostupan") titlePos = InStr (kodovi, "") Ako titlePos> 0 onda titlePos2 = InStr (titlePos, kodovi, "") Ako titlePos> 0 onda titleName = Sredina (kodovi, titlePos + 7, titlePos2 - titlePos - 7) Ako jePageStats> 0 onda jePageStats = isPageStats + 23 pos2 = InStr (isPageStats, kodovi, "") pageDown = "Trenutni" likeTxt = Mid (kodovi, isPageStats, pos2 - isPageStats) ElseIf isGroup> 0 Zatim likeTxt = "n.k." pageDown = "Grupa" ElseIf isOldGroup> 0 Zatim likeTxt = "n.k." pageDown = "Stara grupa" ElseIf isOpenGroup> 0 Tada je pos1 = InStr (isOpenGroup, kodovi, "Članovi (") + 9 pos2 = InStr (pos1, kodovi, ")") numMembers = Sredina (kodovi, pos1, pos2 - pos1) pageDown = "Otvori grupu" likeTxt = LTrim ( numMembers) ElseIf isEvent> 0 Zatim pos1 = InStr (1, kodovi, "Centar za pomoć") pos2 = InStr (pos1 + 1, kodovi, "Vidi sve") + 9 pos3 = InStr (pos2, kodovi, "Nazočni") - 1 ako pos3 = -1 Zatim pos1 = InStr (kodovi, "pagelet_event_guests_going") + 28 pos2 = InStr (pos1, kodovi, "> Going (") + 8 pos3 = InStr (pos2, kodovi, ")") numAttending = Mid (kodi, pos2, pos3 - pos2) ostalo numAttending = Sredina (kodovi, pos2, pos3 - pos2) 'pos2 - pos1) Kraj Ako likeTxt = LTrim (numAttending) pageDown = "Događaj" ElseIf isClosedGroup> 0 Zatim pageDown = "Zatvorena grupa" pos1 = InStr (isClosedGroup, kodovi, "Članovi") + 9 pos2 = InStr (pos1, kodovi, ")") likeTxt = Mid (kodovi, pos1, pos2 - pos1) ElseIf isNumberGiant> 0 Zatim pos2 = InStr (isNumberGiant, kodovi, ">") pos3 = InStr (pos2, kodovi, "") likeTxt = Mid (kodi, pos2 + 1, pos3 - pos2 - 1) pageDown = "Trenutni" ElseIf isCommonInterest> 0 Zatim pageDown = "Zajednički interes" likeTxt = "n.k." Inače ako je otvoreno> 0 i a "Facebook" Zatim pageDown = "Trenutni" likeTxt = "n.k." ElseIf isMovie> 0 Onda pageDown = "Film" likeTxt = "n.k." Kraj If If pageDown = True tada pageDown = "Stranica dolje" likeTxt = "n.a." numlinks = "n.a." Kraj Ako Kraj Ako mc. Pomak (0, myCol - 2) .Value = stranicaDown mc. Pomak (0, myCol - 1) .Value = likeTxt mc. Offset (0, myCol - 0) = numlinksskiploop: pageDown = "" likeTxt = "" numlinks = "" Sljedeće mc'Očisti IeApp. Zatvorite Set IeApp = Ništa ako je ispravljanje pogrešaka, tada zatvorite # 1 Kraj Sub

Zgodno je, ali radi posao.

Pretpostavljam da sve što radim jest kako izdvojiti .Body.innertext iz instance Google Chrome.

Kao što je rekao Jeff, ne radi zamjene preglednika, već za njegovo korištenje za određenu aplikaciju. Dvaput sam koristio ovu metodu.

Pripadam lokalnom hobi klubu, ali morate biti i član nacionalnog kluba. Nekada sam koristio Excel web upit da bih pregledao naše članstvo (prema matičnom broju države članice) i provjerio plaćanje članova u nacionalnoj organizaciji. No, prije nekoliko godina, nacionalna organizacija promijenila je način na koji funkcionira njihovo web mjesto i web upit više neće raditi. Ali ova metoda ipak mi omogućava da brzo prođem kroz članstvo i vizualno potvrdim nacionalno članstvo. (Ugradio sam preglednik u Excel obrazac koji istovremeno prikazuje podatke o članu našeg lokalnog kluba.)

Zatim smo prošli tjedan, na poslu, morali obaviti reviziju točnosti podataka sadržanih u oko 10.000 slika; uspoređujući podatke snimljene na slici s povezanim informacijama u našoj bazi podataka i osiguravajući njihovo podudaranje. Tako da mi je potreban način da korisnici brzo pogledaju sliku, utipkaju neke informacije sadržane na slici i ponove ovo više i više od 10.000 puta. Slike smo stavili na web poslužitelj, a tu metodu sam povukao u prozor preglednika na Excel obrascu za unos podataka. Korisnici će vidjeti sliku, na obrazac za unos podataka upisati potrebne podatke, pritisnuti tipku Enter i odmah biti preusmjereni na sljedeću sliku na pregled.

Za aplikacije poput ovih koje sam gore opisao prilično je koristan. Vjerojatno vam nikada neću trebati vremena da poznajem bilo koji "ozbiljniji" programski jezik, ali mogu dovoljno dobro snimiti makronaredbe i isjeckati svoj put kroz VBA. Revizija točnosti trebala mi je manje od jednog dana da u potpunosti razradim, testiram i implementiram. Nije mi trebalo povlačiti resurse za programere sa dodijeljenih zadataka (i ozbiljno sumnjam da bi neki od naših Java ili PL-SQL programera mogao to učiniti brže nego što sam koristio vanilla Excel i VBA.