Colección de citas famosas - Slogan de motivación - ¿Cómo escribir código EXCEL VBA?

¿Cómo escribir código EXCEL VBA?

Tomemos como ejemplo el comportamiento de 9 a 13.

Primero, método de circulación general

Subperíodo ()

Dim j As Long

Dim j As Long

Atenuar mientras MaxCnt

Atenuar arreglo como variable

Atenuar celdas como rango

Para cada celda en el rango ("G9:G13")

arr = aplicación. Transponer(Apply.Transpose(Cell.Resize(1, 8)))

Celda(Cell.Row, "C"). Borrar

Para i = LBound(arr) a UBound(arr)

MaxCnt = 0

Para j = i a UBound(arr)

Si arr(j)>entonces 0

MaxCnt = MaxCnt 1

Otro

es...Salir

terminará si...

Siguiente j

Celda(celda. fila, "C") = aplicar. Max(MaxCnt, Cells(Cell. Row, "C"))

Siguiente yo

Siguiente celda

Conector final

2 Método recursivo

Submigración()

Atenuar la celda como un rango

Para cada celda del rango ("G9: G13")

.

Celda(celda. fila, "C"). claro

Llamar recursivo(cell.resize(1, 8))

Luego

end-joiner

subrecursivo (Rng como rango )

Atenuar Cntius mientras

Atenuar arr como variable

Atenuar i mientras

Si Rng. luego cuenta = 1

arr = Array(Rng. value)

otro

arr = aplicación. Transponer(Apply.Transpose(Rng))

Finalizar si...

Para i = LBound(arr) a UBound(arr)

Si arr( I) lt; gt then 0

Cntius = Cntius 1

Otro

Salir para...

Si... entonces terminará

Entonces

Celda(Rng. fila, "C") = aplicar. max(Cntius, cell(Rng. fila, "C"))

if Rng. Cuente gt y luego 1

Rng recursivo. desplazamiento (0,1). resize(1, Rng.Number of columns - 1)

Terminará si...

Finalizar conector

Captura de pantalla de dos personas corriendo

No lo he probado con cientos de miles de filas de datos, así que no sé cuál es más rápido.