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.
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

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
