Com utilitzar els bucles For-Next a Excel 2016 VBA

El tipus de bucle més senzill de la programació d'Excel VBA és un bucle For-Next. El bucle està controlat per una variable de comptador, que comença en un valor i s'atura en un altre valor. Les declaracions entre la instrucció For i la sentència Next són les declaracions que es repeteixen en el bucle.

Un exemple de For-Next

L'exemple següent utilitza un bucle For-Next per sumar els primers 1.000 nombres positius. La variable Total comença com a zero. Aleshores es produeix el bucle. La variable Cnt és el comptador de bucles. Comença com a 1 i s'incrementa en 1 cada vegada a través del bucle. El bucle acaba quan Cnt és 1.000.

Aquest exemple només té una declaració dins del bucle. Aquesta declaració afegeix el valor de Cnt a la variable Total. Quan acaba el bucle, un MsgBox mostra la suma dels números.

Sub AddNumbers()
  Dim total com a doble
  Dim Cnt As Long
  Total = 0
  Per a Cnt = 1 a 1000
    Total = Total + Cnt
  Següent Cnt
  MsgBox Total
End Sub

Com que el comptador de bucles és una variable normal, podeu escriure codi per canviar-ne el valor dins del bloc de codi entre les sentències For i Next. Aquesta, però, és una molt mala pràctica.

Exemples de For-Next amb un pas

Podeu utilitzar un valor de pas per saltar alguns valors del comptador en un bucle For-Next. Aquí teniu l'exemple anterior, reescrit per sumar només els nombres senars entre 1 i 1.000:

Sub AddOddNumbers()
  Dim total com a doble
  Dim Cnt As Long
  Total = 0
  Per a Cnt = 1 a 1000 Pas 2
    Total = Total + Cnt
  Següent Cnt
  MsgBox Total
End Sub

Aquesta vegada, Cnt comença com a 1 i després pren valors de 3, 5, 7, etc. El valor Step determina com s'incrementa el comptador. Tingueu en compte que el valor del bucle superior (1000) no s'utilitza realment perquè el valor més alt de Cnt serà 999.

Aquí hi ha un altre exemple que utilitza un valor de pas de 3. Aquest procediment funciona amb el full actiu i aplica un ombrejat gris clar a cada tercera fila, des de la fila 1 fins a la fila 100.

Sub-ombraEveryThirdRow()
  Dim i As Long
  Per i = 1 a 100 Pas 3
    Files(i).Interior.Color = RGB(200, 200, 200)
  A continuació i
End Sub

Consulteu el resultat d'executar aquesta macro.

Com utilitzar els bucles For-Next a Excel 2016 VBA

Ús d'un bucle per aplicar ombrejat de fons a les files.

Un exemple de For-Next amb una instrucció Exit For

Un bucle For-Next també pot incloure una o més sentències Exit For dins del bucle. Quan VBA troba aquesta declaració, el bucle finalitza immediatament.

L'exemple següent mostra la instrucció Exit For. Aquesta rutina és un procediment de funció, destinat a ser utilitzat en una fórmula de full de treball. La funció accepta un argument (una variable anomenada Str) i retorna els caràcters a l'esquerra del primer dígit numèric. Per exemple, si l'argument és "KBR98Z", la funció retorna "KBR".

Funció TextPart(Str)
  Dim i As Long
  TextPart = ""
  Per i = 1 a Len(Str)
    Si IsNumeric(Mid(Str, i, 1)) Aleshores
      Sortida per
    Altrament
      TextPart = TextPart & Mid(Str, i, 1)
    Acaba si
  A continuació i
Funció final

El bucle For-Next comença amb 1 i acaba amb el número que representa el nombre de caràcters de la cadena. El codi utilitza la funció Mid de VBA per extreure un sol caràcter dins del bucle. Si es troba un caràcter numèric, s'executa la instrucció Exit For i el bucle finalitza abans d'hora.

Si el caràcter no és numèric, s'afegeix al valor retornat (que és el mateix que el nom de la funció). L'única vegada que el bucle examinarà tots els caràcters és si la cadena passat com a argument no conté caràcters numèrics.

Un exemple imbricat For-Next

Podeu tenir qualsevol nombre de declaracions al bucle i anidar bucles For-Next dins d'altres bucles For-Next.

L'exemple següent utilitza un bucle For-Next imbricat per inserir números aleatoris en un rang de cel·les de 12 files per 5 columnes. Observeu que la rutina executa el bucle intern (el bucle amb el comptador de fila) una vegada per cada iteració del bucle exterior (el bucle amb el comptador de Col). En altres paraules, la rutina executa la sentència Cells(Row, Col) = Rnd 60 vegades.

Com utilitzar els bucles For-Next a Excel 2016 VBA

Aquestes cel·les es van omplir mitjançant un bucle For-Next imbricat.

Sub FillRange()
  Dim Col As Long
  Dim Row As Long
  Per a Col = 1 a 5
    Per a fila = 1 a 12
      Cel·les (Fila, Col) = Rnd
    Fila següent
  Següent Col
End Sub

L'exemple següent utilitza bucles For-Next imbricats per inicialitzar una matriu tridimensional amb el valor 100. Aquesta rutina executa la instrucció al mig de tots els bucles (la instrucció d'assignació) 1.000 vegades (10 * 10 * 10), cada vegada. amb una combinació diferent de valors per a i, j i k:

Sub NestedLoops ()
  Dim MyArray (10, 10, 10)
  Dim i As Long
  Dim j As Long
  Dim k As Long
  Per i = 1 a 10
    Per a j = 1 a 10
      Per a k = 1 a 10
        La meva matriu (i, j, k) = 100
    Següent k
  Següent j
A continuació i
  ' Altres declaracions van aquí
End Sub

Aquí teniu un exemple final que utilitza bucles For-Next imbricats, amb un valor de pas. Aquest procediment crea un tauler d'escacs canviant el color de fons de les cel·les alternes.

Com utilitzar els bucles For-Next a Excel 2016 VBA

Ús de bucles per crear un patró de tauler d'escacs.

El comptador de fila fa un bucle de l'1 al 8. Una construcció If-Then determina quina estructura imbricada For-Next cal utilitzar. Per a les files senars, el comptador Col comença amb 2. Per a les files parelles, el comptador Col comença amb 1. Els dos bucles utilitzen un valor de pas de 2, de manera que les cel·les alternatives es veuen afectades. Dues declaracions addicionals fan quadrades les cel·les (com un tauler d'escacs real).

Sub MakeCheckerboard ()
  Dim R As Long, C As Long
  Per a R = 1 a 8
    Si WorksheetFunction.IsOdd(R) Aleshores
     Per a C = 2 a 8 Pas 2
       Cel·les(R, C).Interior.Color = 255
     Següent C
    Altrament
     Per a C = 1 a 8 Pas 2
       Cel·les(R, C).Interior.Color = 255
     Següent C
    Acaba si
  Següent R
  Files ("1:8"). RowHeight = 35
  Columnes ("A:H"). ColumnWidth = 6,5
End Sub

Com bloquejar Microsoft Word dobrir fitxers en mode només de lectura a Windows

Com bloquejar Microsoft Word dobrir fitxers en mode només de lectura a Windows

Com bloquejar Microsoft Word d'obrir fitxers en mode de només lectura a Windows Microsoft Word obre fitxers en mode de només lectura, cosa que fa que sigui impossible editar-los? No us preocupeu, els mètodes es mostren a continuació

Com solucionar la impressió incorrecta de documents de Microsoft Word

Com solucionar la impressió incorrecta de documents de Microsoft Word

Com corregir errors en imprimir documents incorrectes de Microsoft Word Els errors en imprimir documents de Word amb tipus de lletra canviats, paràgrafs desordenats, falta de text o contingut perdut són força habituals. No obstant això, no

Esborra els dibuixos de llapis i ressaltats a les teves diapositives de PowerPoint

Esborra els dibuixos de llapis i ressaltats a les teves diapositives de PowerPoint

Si heu utilitzat el llapis o el marcador per dibuixar a les vostres diapositives de PowerPoint durant una presentació, podeu desar els dibuixos per a la següent presentació o esborrar-los de manera que la propera vegada que el mostreu, començareu amb diapositives de PowerPoint netes. Seguiu aquestes instruccions per esborrar dibuixos a llapis i ressaltadors: Esborrant línies una a […]

Contingut de la biblioteca destils a SharePoint 2010

Contingut de la biblioteca destils a SharePoint 2010

La biblioteca d'estils conté fitxers CSS, fitxers de llenguatge de full d'estil extensible (XSL) i imatges utilitzades per pàgines mestres predefinides, dissenys de pàgina i controls a SharePoint 2010. Per localitzar fitxers CSS a la biblioteca d'estils d'un lloc de publicació: Trieu Accions del lloc→Visualitza Tot el contingut del lloc. Apareix el contingut del lloc. La biblioteca d'estil es troba a […]

Formateu els números en milers i milions als informes dExcel

Formateu els números en milers i milions als informes dExcel

No desbordeu el vostre públic amb números gigantesques. A Microsoft Excel, podeu millorar la llegibilitat dels vostres taulers i informes formatant els vostres números perquè apareguin en milers o milions.

Com compartir i seguir els llocs de SharePoint

Com compartir i seguir els llocs de SharePoint

Apreneu a utilitzar les eines de xarxes socials de SharePoints que permeten a persones i grups comunicar-se, col·laborar, compartir i connectar-se.

Com convertir les dates a formats Julian a Excel

Com convertir les dates a formats Julian a Excel

Les dates julianes s'utilitzen sovint en entorns de fabricació com a marca de temps i referència ràpida per a un número de lot. Aquest tipus de codificació de dates permet als minoristes, consumidors i agents de serveis identificar quan es va fabricar un producte i, per tant, l'antiguitat del producte. Les dates julianes també s'utilitzen en programació, militars i astronomia. Diferents […]

Com crear una aplicació web daccés

Com crear una aplicació web daccés

Podeu crear una aplicació web a Access 2016. Què és, de totes maneres, una aplicació web? Bé, web vol dir que està en línia i l'aplicació és només una abreviatura de "aplicació". Una aplicació web personalitzada és una aplicació de base de dades en línia a la qual s'accedeix des del núvol mitjançant un navegador. Creeu i manteniu l'aplicació web a la versió d'escriptori […]

Barra dinici ràpid a SharePoint 2010

Barra dinici ràpid a SharePoint 2010

La majoria de les pàgines del SharePoint 2010 mostren una llista d'enllaços de navegació a la barra d'inici ràpid al costat esquerre de la pàgina. La barra d'inici ràpid mostra enllaços al contingut del lloc destacat, com ara llistes, biblioteques, llocs i pàgines de publicació. La barra d'inici ràpid inclou dos enllaços molt importants: Enllaç de tot el contingut del lloc: el […]

Què signifiquen els missatges derror del solucionador a Excel?

Què signifiquen els missatges derror del solucionador a Excel?

Per a problemes senzills, Solver a Excel sol trobar ràpidament els valors òptims de la variable Solver per a la funció objectiu. Però, en alguns casos, Solver té problemes per trobar els valors de la variable Solver que optimitzen la funció objectiu. En aquests casos, Solver normalment mostra un missatge o un missatge d'error que descriu o discuteix el problema que […]