/ / Copiar rangos a la tabla maestra y eliminar rangos de la tabla maestra si cell = 0 - excel, vba, excel-vba

Copie los rangos a la tabla maestra y elimine los rangos de la tabla maestra si celda = 0 - excel, vba, excel-vba

Hay 10 hojas (Hoja1 ... Hoja10) con tablas en el mismo rango (C25: G34 y C42: N51).

Tablas de origen de hojas de trabajo

Las filas deben copiarse si la columna "Peso total" tiene un valor> 0. Las filas copiadas van a dos tablas de resumen:

A la tabla de Westrock -> Tabla de resumen de Westrock

A la tabla DNP -> Tabla resumen DNP

Tabla de resumen: Westrock Resumen de Westrock

Tabla de resumen: DNP enter image description here

Estoy en Mac, por lo que PowerQuery no es una opción. Soy nuevo en VBA; Esto es lo que tengo hasta ahora:

Sub ToDNP()

Application.ScreenUpdating = False

Worksheets("Jupiter").Activate
Range("C42:N51").Select
Selection.Copy
Worksheets("To DNP").Activate
Range("C11").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
"Application.CutCopyMode = False

Worksheets("Windsor").Activate
Range("C42:N51").Select
Selection.Copy
Worksheets("To DNP").Activate
Range("C21").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Worksheets("Orlando").Activate
Range("C42:N51").Select
Selection.Copy
Worksheets("To DNP").Activate
Range("C31").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Worksheets("Woodland").Activate
Range("C42:N51").Select
Selection.Copy
Worksheets("To DNP").Activate
Range("C41").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False


Dim rRow As Integer, rCol As Integer
Dim cRow As Integer, cCol As Integer

rCol = 3
rRow = 11
cCol = 14
cRow = 11

For cRow = 11 To 50

If Cells(cCol, cRow).Value = "0" Then
Range(Cells(rCol, rRow), Cells(cCol, cRow)).ClearContents
End If
rRow = rRow + 1

Next cRow

End Sub

Esto me está dando un error:

Error: no se puede cambiar parte de una celda combinada

Respuestas

1 para la respuesta № 1

Obtiene el error porque tiene los valores de fila y columna intercambiados. El parámetro de fila viene primero y entonces viene el parámetro de columna.

Su código debería leer lo siguiente:

If Cells(cRow, cCol).Value = "0" Then
Range(Cells(rRow, rCol), Cells(cRow, cCol)).ClearContents
End If

Está intentando borrar la columna 11 de las filas 3 a 14 de la hoja de trabajo "A DNP", que obviamente contiene celdas combinadas.


0 para la respuesta № 2

Para cualquiera que se detenga; Aquí hay un código simple para borrar un rango específico en una fila si una celda contiene un valor específico.

For Each cell In Range("C11:N50")
If cell.Value2 = "0" Then
Set cRng = Range("C" & cell.Row & ":" & "O" & cell.Row)
" Or Set clearRng = Range("C" & cell.Row & ":O" & cell.Row)
cRng.Clear
End If
Next