/ / Kopírovať rozsahy do hlavnej tabuľky a odstrániť rozsahy z hlavnej tabuľky, ak je bunka = 0 - excel, vba, excel-vba

Kopírovať rozsahy do hlavnej tabuľky a odstrániť rozsahy z hlavnej tabuľky, ak bunka = 0 - excel, vba, excel-vba

K dispozícii je 10 hárkov (hárok 1 ... hárok10) s tabuľkami v rovnakom rozsahu (C25: G34 a C42: N51).

Zdrojové tabuľky pracovných hárkov

Ak má stĺpec „Celková hmotnosť“ hodnotu> 0. Riadky musia byť skopírované. Skopírované riadky idú do dvoch súhrnných tabuliek:

Do tabuľky Westrock -> Súhrnná tabuľka Westrock

Do tabuľky DNP -> Súhrnná tabuľka DNP

Súhrnná tabuľka: Westrock Westrock Summary

Súhrnná tabuľka: DNP tu zadajte popis obrázku

Som na Mac, takže PowerQuery nie je možné. Som nový vo VBA; toto je to, čo mám doteraz:

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

To mi dáva chybu:

Chyba: Nie je možné zmeniť časť zlúčenej bunky

odpovede:

1 pre odpoveď č. 1

Zobrazuje sa vám chyba, pretože máte vymenené hodnoty riadkov a stĺpcov. Parameter riadok je na prvom mieste a potom prichádza parameter stĺpca.

Váš kód by mal znieť takto:

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

Pokúšate sa vyčistiť stĺpec 11 z riadkov 3 až 14 pracovného listu „Do DNP“, ktorý samozrejme obsahuje zlúčené bunky.


0 pre odpoveď č. 2

Pre každého, kto sa zastaví; tu je jednoduchý kód na vymazanie určitého rozsahu v riadku, ak jedna bunka obsahuje špecifickú hodnotu.

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