A continuación vamos a ver un programa en Excel VBA que muestra una vista previa de impresión de todos los posibles partidos de fútbol a partir de una lista de equipos.

Situación:

Possible Football Matches in Excel VBA

  1. En primer lugar, declaramos un objeto Range y cuatro variables. Que llamamos el objeto RNG. Una variable de cadena que llamamos matchname, y tres variables enteras que llaman contador, i y j.

Dim rng As Range, matchname As String, counter As Integer, i As Integer, j As Integer
  1. inicializamos RNG con los nombres de los equipos. Utilizamos enlace: / VBA-ejemplos-CurrentRegion [CurrentRegion] porque no sabemos con precisión los límites de la gama de antelación (queremos que este programa de trabajo para 3 equipos, sino también para los 12 equipos). Inicializamos contador con el valor 0.

Set rng = Range("A1").CurrentRegion

counter = 0
  1. Escribimos todos los posibles partidos de fútbol a la columna C. En primer lugar, nos vacía la columna C.

Worksheets(1).Columns(3) = ""
  1. Comenzamos un bucle doble.

For i = 1 To rng.Count

For j = i + 1 To rng.Count
  1. Escribimos un matchname a la variable matchname.

matchname = rng.Cells(i).Value & " vs " & rng.Cells(j).Value

Por ejemplo, para i = 1 y j = 2, Excel VBA escribe los Kickers matchname vs tiradores. Para i = 1 y j = 3, Excel VBA escribe los Kickers matchname CONTRA poca Gigantes, etc.

  1. escribimos la matchname a la columna C.

Cells(counter + 1, 3).Value = matchname
  1. El contador mantiene un registro del número de matchnames escritos para contador de columna C. Excel VBA incrementos en 1 cada vez que escribe un matchname a la columna C. Para lograr esto, añadir la siguiente línea de código:

counter = counter + 1
  1. No se olvide de cerrar los dos bucles.

Next j

Next i
  1. Nos muestran una vista previa de impresión de todos los posibles partidos de fútbol.

ActiveSheet.Columns(3).PrintPreview

Prueba 10. el programa.

Parte del resultado:

Possible Football Matches Result

Nota: la columna C se centra de forma manual para obtener este resultado.