La Red de Conocimientos Pedagógicos - Currículum vitae - EXCEL VBA: ¿Qué significan estas declaraciones? ¿Alguien puede traducirlos frase por frase?

EXCEL VBA: ¿Qué significan estas declaraciones? ¿Alguien puede traducirlos frase por frase?

Hoja de trabajo privada _ enable()'Evento de activación de la hoja de trabajo

Establecer d = createobject("script.dictionary")'Especifique d como objeto de diccionario.

arr = Hoja1. Utilice rango

Para i = 2 hasta el límite inferior (arr)

Si arr(i, 1) lt; gt "" entonces d(arr(i, 1)) = " " 'DAgregar palabras clave.

Luego

Mismo rango ("B2"). Confirmar

. Eliminar

. add3, 1, 1, join (d.keys, ","") La validez de los datos aumentada en b2 es igual al valor del enlace de la palabra clave d.

Termina con...

Establecer d = Ninguno

Finalizar conector

Subconsulta()

Dim d , arr, brr(), ar, br(), abr(), m, n, I, j, a, b, aa, s

Rango (" A5: P10000 "). "Borrar contenido" borra el contenido del rango de celdas ("A5: P10000").

If Range("B2") = " "Entonces MsgBox "¡Seleccione uno! El programa sale., 64, "Consejos": Salir del cortocircuito

If Range("C2 ") = " "Luego MsgBox "¡Por favor, complete la cantidad de entrega! El programa sale. , 64, "Consejo": Cuando las subceldas de exportación B2 y C2 estén vacías, aparecerá un cuadro de diálogo.

Arr = Hoja1. Asigne una matriz "usando rango".

Para i = 2 en la dimensión ARR1 al bucle UBound(arr)'.

Si arr (I, 1) = Rango ("B2"), arr (i, 4) = "Disponible", entonces 'determina si la celda es igual a Rango ("B2"), arr (I ,4) = "Disponible", ejecute el siguiente código.

M = m 1' Se acumulan M valores.

Redim preserve BRR (1to7, 1toM)' asigna un valor al número BRR,

For j = 1 to 6 'J realiza un bucle de 1 a 6.

Brr(j, m) = arr(i, j)' asigna un valor a Brr igual al valor de la matriz arr correspondiente.

Entonces

Brr(7, m) = arr(i, 10)' también es una asignación de Brr.

Terminará si...

Si arr(i, 1) = Range("B2 "), entonces juzgue arr (I, 1) = range ("B2 " ), ejecute el siguiente código.

S = valor acumulado de s 1.

Redim preserve abr (1to7, 1tos)' m también es el valor asignado a abr, que es igual al aspecto de la matriz arr correspondiente.

Para j = 1 a 6

abr(j, s) = arr(i, j)

Entonces

abr( 7, s) = arr(i, 10)

Terminará si...

Entonces

Si m = 0, entonces 'si m es igual 0, luego realice el siguiente proceso.

Rango(" B5:H10000"). "Borrar contenido" borra el contenido del rango de celdas ((b5:h10000").

[b5].resize(s,7) = aplicación.

transpose (abr)' {b5] Después de extender la región, la asignación es igual al valor transpuesto de abr.

rango(" B5: H " & S 4). Ordenar [H5]' Ordenar columna H.

MsgBox " " amp range ("B2") amp "¡El stock que se puede emitir para este material es 0! El programa sale., 64, aparece "Mensaje"

' Exit Sub 'Salga del programa.

Terminará si... resize (m, 7) = transpose (BRR)' {b5]Después de expandir el área, asigne un valor igual a BRR. transpuesto.

range("B5:H" & M 4)' Ordenar columna H

arr = Range(. "B5:H"&M 4)'Reasignar el ARR

range("B5:H10000"). "Borrar contenido" borra el contenido del rango de celdas ((b5:h10000).

p>

[b5]. resize (s, 7). ) = application. transpose (abr)' {b5] Después de extender el rango, la asignación es igual al valor transpuesto de

range(" B5 : H " & S 4). ]' Ordena la columna H.

For i = 1 To UBound(ARR)' bucle en la matriz ARR.

A = a arr(i, 3)' asigna un valor a

Entonces

B = Val(Range("C2 ")' asigna un valor a b

Si a-b lt; Si A-B es menor que 0, realice el siguiente proceso.

MsgBox " " amp range ("B2") amp; "Artículos de inventario existentes"; ¡un amplificador "no es suficiente para esta salida! El programa sale. , 64, mensaje emergente "Preguntar".

Conector de salida

Terminará si...

Para i = 1 a UBound(arr)

p>

n = n 1

ReDim Preserve br(1 a 7, 1 a n)

Para j = 1 a 7

br( j, n) = arr(i , j)

Entonces

aa = aa arr(i, 3)

Si Val(aa)>= Val (b) Entonces

Salir para...

Terminará si...

Entonces

br(3, n) = br(3,n) - (aa - b)

[J5]. Resize(n,7) = Transpose (br)'El código anterior asigna el valor a [J5]. Resize(n,7) es igual al contenido transpuesto (br).

Conector final