Kā pārvietoties pa Excel darblapu ar VBA

Kopīgot tūlīt:

Dažreiz ir lietderīgi lasīt darblapu pa rindai un selektīvi ņemt no tās datus. Zemāk redzamais piemērs parāda, kā to izdarīt.

Rakstā tiek pieņemts, ka lasītājam ir parādīta izstrādātāja lente un viņš ir iepazinies ar VBA redaktoru. Ja nē, lūdzu, Google “Excel izstrādātāja cilne” vai “Excel koda logs”.

Šis piemērs manipulē ar datiem, pārbaudot katru e-pasta adrešu rindu un apvienojot tos vienā adrešu rindā. Lai gan programmā Excel ir iebūvētas funkcijas Transponēt, mēs ar savu kodu plānojam izslēgt dažus konkrētus adresātus un pievienot atdalītājus.

Mūsu pieteikumam ir nepieciešama tikai viena lapa. Kopējiet zemāk esošo informāciju šūnā A1:

Epasta adrese
tcruise@paramount.com
julia.R@disney.com
Jules.dassin@gaumont.co.fr
EnricoFellini@cinecitta.co.it
marimontsrary@bedlam.org.uk

Veidlapā ievietojiet pogu, lai sāktu kodu.Veidlapā ievietojiet pogu, lai sāktu kodu

Pieņemsim, ka šo e-pastu ir simtiem, nevis tikai pieci; mēs vēlamies katram nosūtīt to pašu ziņojumu un vienu un to pašu scenārija kopiju. Ir vairāki veidi, kā to izdarīt, most jo īpaši, zvanot e-pasta sūtītājam, piemēram, Outlook, no VBA koda. Tomēr šim vingrinājumam ir divi mērķi:

  • Parādiet, kā ērti pārvietoties pa darblapu;
  • Uzsveriet Excel spēju pārbaudīt katru rindu un rīkoties atbilstoši tai.

VBA kodekss

VBA kods saīsinās visas adreses, aiz katras ievietojot semikolu, lai tās vienā ielīmē varētu ielīmēt e-pasta adresāta laukā. No koda jūs atzīmēsiet, ka pēc rindu pārbaudes tas izslēgs franču valodas.

Ievietojiet moduli un ievadiet šo:

Option Explicit
Dim strEmail As String
Dim strAll As String

Sub Main()
    strAll = ""
    Range("C2") = strAll     'clear previous program results
    Sheets("Sheet1").Select
    Range("A2").Select
    Do While ActiveCell > ""      'loop until row 7
        strEmail = ActiveCell
        If Right(strEmail, 2) <> "fr" Then      'exclude France
            strAll = strAll & strEmail & ";"
        End If
        Range("A" & ActiveCell.Row + 1).Select     'move on a row in the SAME column
    Loop
    Range("C2") = strAll
End Sub

Kods saglabā aktīvo šūnu A kolonnā, tikai rindas virzās tālāk. Lai atsauktu informāciju citur pēc kārtas, mēs izmantotu:

Variable = Activecell.offset(offset rows, offset columns)

Piemēram, lai iegūtu vērtību no B kolonnas aktīvajā rindā, kods tiktu nolasīts Activecell.offset (0, 1). Izlasītu, lai iegūtu A2 vērtību, kad atrodamies A3 Activecell.offset (-1, 0).

Lai pārbaudītu kodu, piešķiriet pogu makro “Main”.

Daži interneta pakalpojumu sniedzēji kā piesardzības pasākumi pret surogātpastu var ierobežot to e-pasta ziņojumu skaitu, kurus varat nosūtīt uzreiz. Ja izmantojat šo metodi, iespējams, vislabāk ir sazināties ar viņiem pirms simtiem e-pasta ziņojumu nosūtīšanas vienā piegājienā.

Darbība ar Excel failu korupciju

Excel failu korupcijaLaiku pa laikam mēs saskaramies ar darbgrāmatu korupciju tādā mērā, ka pati Excel tos nevar atgūt. Tā ir katastrofa most Excel lietotāji, ieskaitot ekspertus. Tomēr, ja jums ir pieejams efektīvs atkopšanas rīks, varat to atjaunot bojāti xlsx faili viegli un ātri.

Autora ievads:

Fēlikss Hukers ir datu atkopšanas eksperts DataNumen, Inc., kas ir pasaules līderis datu atkopšanas tehnoloģiju, tostarp remonts rar korupcija un SQL atkopšanas programmatūras produkti. Lai iegūtu vairāk informācijas, apmeklējiet vietni www.datanumen. Ar

Kopīgot tūlīt:

Komentāri ir slēgti.