Colección de citas famosas - Slogan de motivación - ¿Cómo usar VBA en Excel para dividir dos hojas de trabajo de un libro en varios libros de acuerdo con una columna determinada?

¿Cómo usar VBA en Excel para dividir dos hojas de trabajo de un libro en varios libros de acuerdo con una columna determinada?

Ahora entiendo que todos los departamentos están en la columna A y solo hay una línea en el encabezado. El código es el siguiente:

El siguiente texto es solo como referencia. y el navegador puede robar caracteres:

Opción explícita

Sub split()

Dim depts, dept, arr, i, j, st, wb, st2

Establecer departamentos = CreateObject("scripting.dictionary")

'Primer escaneo, obtenga una lista de todos los departamentos

Para cada punto en hojas

arr = st .UsedRange

Para i = 2 a UBound(arr)

depto = Trim(arr(i, 1))

Si departamento <> "" Entonces departamentos(depto) = True

Siguiente i

Siguiente st

'Segundo análisis, produzca archivos de cada departamento

Establecer wb = ThisWorkbook

Para cada departamento en depts.keys

Con Workbooks.Add

Para cada st en wb.Sheets

arr = st.UsedRange

Establecer st2 = .Sheets.Add(after:=.Sheets(.Sheets.Count))

st2.Name = st.Name

j = 0

Para i = 1 a UBound(arr)

Si i = 1 o Trim(arr(i, 1)) = departamento entonces

j = j + 1

st.Rows(i).Copiar st2.Rows(j)

Finalizar si

Siguiente i

Siguiente paso

.Guardar como wb.FullName & "." & dept & ".xlsx"

.Cerrar

Fin Con

Siguiente departamento

Fin Sub