Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti *

Atvainojiet - nedomājāt par to, kā kods izskatīsies iesniegtajā komentārā. Dzēst, ja vēlaties, un es vēlreiz nosūtīšu ziņojumu labākā formātā.

Kas attiecas uz komentāriem par to, ka VBA ir arhaiska, es to uzskatu par patiešām noderīgu. Tas ļāva nedēļu ilgu procesu manā komandā pārvērst par 10 minūšu procesu. Tas ļāva man samazināt lielāko daļu darbību, ko veic mana komanda, automatizējot gandrīz visu.

Spēja lietot AD validācijas, iegūt datus no dažādām operētājsistēmu datu bāzēm un samazināt visus nepatīkamos SQL vaicājumus, pēc tam tos izgriežot un ielīmējot.

Mainīts darbs, kurā nepieciešami vairāki vaicājumi, ar vienu peles klikšķi manuāli ģenerējot vairākus e-pastus.

Es to absolūti mīlu, arhaisks vai nē.

Pirms kāda laika es atradu kaut ko līdzīgu un izstrādāju uz Excel balstītu lietojumprogrammu, kas ļāva man izsekot "Patīk" skaitu norādīto Facebook lapu komplektā. Kopš tā laika es esmu to paplašinājis, lai izmantotu VBA, lai iegūtu visa veida informāciju dažādās vietnēs.

instagram viewer

Pašlaik mana problēma ir tā, ka man ir zināmas problēmas ar IE un mēdzu izmantot pārlūku Chrome.

Kā es varu iztulkot iepriekš minēto kodu, lai tas darītu to pašu, bet kā pārlūku izmanto Chrome. Es varu izmantot komandu Shell, lai atvērtu pārlūku Chrome un atvērtu konkrētu URL, bet nevaru izdomāt, kā iegūt informāciju no šīs lapas.

Piemēram, mans Facebook kods ir:

Sub GetLikes () Dim IeApp As InternetExplorerDim sURL As StringDim IeDoc As ObjectDim i As Longdebugmode = False Ja debugmode Tad Open "c: VBAoutputvbaOutput.txt "Papildināt kā 1. Izveidojiet jaunu IE kopas kopu IeApp = New InternetExplorer" Padariet to redzamu - dažas lietas nedarbojas, ja vien tas ir redzams IeApp. Redzams = atkļūdošanas režīms katram atlasītajiem mc definējiet lapu, lai atvērtu sURL = mc 'Atrodiet kolonnu chkDate = datuma iestatīšana c = diapazons ("2: 2"). (chkDate) Ja c nav nekāda, tad myCol = Diapazons ("2: 2"). Atrodiet (kas: = "*", meklēšanas virziens: = xlPirms). Kolonna + 1 šūnas (1, myCol) = "Statuss" šūnas (1), myCol + 1) = "Patīk" šūnas (1, myCol + 2) = "Saites" šūnas (2, myCol) = chkDate šūnas (2, myCol + 1) = chkDate šūnas (2, myCol + 2) = chkDate Else myCol = c. Kolonnas beigas, ja 'mc. Nobīde (0, 1) .Value = Date isDown = mc. Nobīde (0, 3). Vērtība Ja isDown = "Lapa uz leju" Tad pageDown = "Lapa uz leju" numlikes = "" numlinks = "" doNothing = True Else 'pāriet uz lapu IeApp. Virzieties pa SURL 'Pauzējiet makro, izmantojot cilpu, līdz lapa ir pilnībā ielādēta. Izveidojiet cilpu līdz IeApp. ReadyState = READYSTATE_COMPLETE 'saglabā dokumentu objektu komplektu IeDoc = IeApp. Dokumenta kļūda Atsākt nākamos kodus = IeDoc. Body.innertext Ja kļūda. Numurs 0 Tad kļūda. Notīrīt GoTo skiploop End, ja rodas kļūda GoTo 0 Ja atkļūdošanas režīms Tad rakstiet # 1, kodi & vbCrLf & vbCrLf numlinks = IeDoc. Saites. Garums a = IeApp. LocationName 'atkļūdošana. Drukāt kodus pageDown = True isPageStats = InStr (kodi, "placePageStatsNumber") isGroup = InStr (kodi, "uiButtonText> Pievienoties") isOldGroup = InStr (kodi, "Šī grupa ir paredzēta arhivēts ") isOpenGroup = InStr (kodi," Open Group ") isEvent = InStr (kodi," Public Event ") isClosedGroup = InStr (kodi," Closed Group ") IsOpen = InStr (kodi, a) isCommonInterest = InStr (kodi, "Vispārējās intereses") isMovie = InStr (kodi, "Movieu003c") isNumberGiant = InStr (kodi, "uiNumberGiant") notFound = InStr (kodi: "Jūsu pieprasītā lapa netika atrasta") profileUnavable = InStr (a, "Profils nav pieejams") titlePos = InStr (kodi, "") Ja titlePos> 0 Tad titlePos2 = InStr (titlePos, code, "") If titlePos> 0 Tad titleName = Mid (kodi, titlePos + 7, titlePos2 - titlePos - 7) Ja isPageStats> 0 Tad isPageStats = isPageStats + 23 pos2 = InStr (isPageStats, kodi, "") pageDown = "Current" likeTxt = Mid (kodi, isPageStats, pos2 - isPageStats) ElseIf isGroup> 0 Tad likeTxt = "n.k." pageDown = "Grupa" ElseIf isOldGroup> 0 Tad likeTxt = "n.k." pageDown = "Vecā grupa" ElseIf isOpenGroup> 0 Tad pos1 = InStr (isOpenGroup, kodi, "Members (") + 9 pos2 = InStr (pos1, kodi, ")") numMembers = Mid (kodi, pos1, pos2 - pos1) pageDown = "Open Group" likeTxt = LTrim ( numMembers) ElseIf isEvent> 0 Tad pos1 = InStr (1, kodi, “Palīdzības centrs”) pos2 = InStr (pos1 + 1, kodi, “Skatīt visu”) + 9 pos3 = InStr (pos2, kodi, “Apmeklējot”) - 1 Ja pos3 = -1 Tad pos1 = InStr (kodi, "pagelet_event_guests_going") + 28 pos2 = InStr (pos1, kodi, "> Notiek (") + 8 pos3 = InStr (pos2, kodi, ")") numAttending = Mid (kodi, pos2, pos3 - pos2) Citur numAttending = Vidusdaļa (kodi, pos2, pos3 - pos2) 'pos2 - pos1) Beigas Ja likeTxt = LTrim (numAttending) pageDown = "Notikums" ElseIf isClosedGroup> 0 Tad pageDown = "Slēgta grupa" pos1 = InStr (isClosedGroup, kodi, "Dalībnieki") + 9 pos2 = InStr (pos1, kodi, ")") likeTxt = Mid (kodi, pos1, pos2 - pos1) ElseIf isNumberGiant> 0 Tad pos2 = InStr (isNumberGiant, kodi, ">") pos3 = InStr (2. poz., kodi, "") likeTxt = Mid (kodi, pos2 + 1, pos3 - pos2 - 1) pageDown = "Current" ElseIf isCommonInterest> 0 Tad pageDown = "Common Interest" likeTxt = "n.k." ElseIf IsOpen> 0 Un a "Facebook" Tad pageDown = "Aktuāls" likeTxt = "n.k." ElseIf isMovie> 0 Tad pageDown = "Movie" likeTxt = "n.k." Beigt, ja pageDown = True, tad pageDown = "Page Down" likeTxt = "n.a." numlinks = "n.a." Beigt Ja Beigt Ja mc. Nobīde (0, myCol - 2) .Value = pageDown mc. Nobīde (0, myCol - 1) .Value = likeTxt mc. Nobīde (0, myCol - 0) = numlinksskiploop: pageDown = "" likeTxt = "" numlinks = "" Nākamais mc'Iztīrīt IeApp. Beigt iestatīt IeApp = Nekas, ja atkļūdot režīmu, pēc tam aizveriet # 1 beigas Sub

Tas ir neveikls, bet dara darbu.

Es domāju, ka viss, kas es esmu, ir tas, kā iegūt .Body.innertext no Google Chrome gadījuma.

Kā Džefs teica, nevis aizstāt jūsu pārlūkprogrammu, bet gan izmantot to noteiktai lietojumprogrammai. Esmu šo metodi izmantojis divreiz.

Es piederu vietējam hobiju klubam, bet jums jābūt arī nacionālā kluba biedram. Es kādreiz izmantoju Excel tīmekļa vaicājumu, lai pārmeklētu mūsu dalību (pēc nacionālā dalībnieka ID numura) un pārbaudītu, vai dalībnieki ir apmaksāti nacionālajā organizācijā. Bet dažus gadus atpakaļ nacionālā organizācija mainīja savas vietnes darbību un tīmekļa vaicājums vairs nedarbosies. Bet šī metode joprojām ļauj man ātri pāriet caur dalību un vizuāli pārbaudīt dalību valstī. (Es iegultu pārlūku Excel formā, kurā vienlaikus tiek parādīta informācija par mūsu vietējā kluba biedriem.)

Tad pagājušajā nedēļā darbā mums bija jāveic precizitātes audits informācijai, kas bija aptuveni 10 000 attēlos; salīdzinot attēlā uzņemto informāciju ar saistīto informāciju mūsu datu bāzē un pārliecinoties, ka tā atbilst. Tāpēc man bija nepieciešams veids, kā lietotāji varētu ātri apskatīt attēlu, ievadīt attēlā esošo informāciju un atkārtot šo vairāk nekā 10 000 reizes. Mēs ievietojām attēlus tīmekļa serverī, un es izmantoju šo metodi, lai attēlu ievilktu pārlūka logā Excel datu ievades formā. Lietotāji redzētu attēlu, datu ievades formā ierakstītu nepieciešamo informāciju, nospiediet ievadīšanas taustiņu un uzreiz nokļūtu nākamajā attēlā pārskatīšanai.

Tādām lietojumprogrammām kā es esmu aprakstījis iepriekš, tas ir diezgan parocīgi. Es, visticamāk, nekad neņemšu laiku, lai iemācītos kādu “nopietnāku” programmēšanas valodu, bet es pietiekami labi varu ierakstīt makro un fragmentāri izrakstīt savu ceļu caur VBA. Precizitātes audits man prasīja mazāk nekā dienu, lai pilnībā izstrādātu, pārbaudītu un ieviestu. Man nevajadzēja atbrīvot izstrādātāju resursus no viņu uzticētajiem uzdevumiem (un es nopietni šaubos, vai kāds no mūsu Java vai PL-SQL izstrādātājiem to būtu varējis paveikt ātrāk nekā es, izmantojot vaniļas Excel un VBA.