Ich habe zwei Blätter. Auf der ersten Seite füllen Sie die benötigten Informationen aus und eine weitere ist im Grunde eine Vorlage, in der Informationen aus dem Blatt (1) enthalten sind.Zusammengelegte Zellen umhüllen, Zeilen mit Zellen löschen "" Excel VBA
Blatt (2) ist voller Formeln wie = IF (Blatt (1)! A1 = ""; ""; Blatt (1)! A1).
Also auf dem Blatt (2) ist eine Menge von Werten mit "", die im Grunde leer sind. Ich möchte die gesamte Zeile löschen, wenn in dieser Zeile kein Text vorhanden ist.
Also, wenn die Zeile wie folgt aussieht:
A33 („“) B33 („“) C33 („“) D33 („“) E33 („“) F33 („“) G33 (etwas Text) H33 ("") I33 ("") - es sollte
bleiben A34 ("") B34 (") C34 (") D34 (") E34 (") F34 (") G34 ("") H34 ("") I34 ("") - sollte gelöscht werden
Auch auf dem Blatt (2) habe ich Zellen zusammengefügt und Text aus der entsprechenden Zelle in Blatt (1) passt nicht hinein. Ich möchte diese Zellen umhüllen, die sich in Bereich Sheet (2) befinden! B31: D68 (B31: D31 und B32: D32 und so weiter) werden zusammengeführt.
Hier ist mein Code, aber zum Beispiel Wrap für verbundene Zellen funktioniert nicht. Der Code versteckt die Zeilen, die ich löschen möchte. Code versteckt auch Zeilen mit meinem Text in Sheet (2), die als Ergebnis von Sheet (1) kommen.
Sub AutofitRows()
Dim CL As Range
For Each CL In ActiveWorkbook.Sheets(2).Range("A30:I68")
If CL.WrapText Then CL.rows.AutoFit
Next
End Sub
Sub removecellswithemptycells()
ActiveWorkbook.Sheets(2).Select
Set rr = Range("A30:J66")
For Each cell In rr
cell.Select
If cell.HasFormula = True And cell.Value = "" And cell.EntireRow.Hidden = False Then rows(cell.Row).EntireRow.Hidden = True
Next cell
End Sub
Sub removecellswithemptycells_pos2()
ActiveWorkbook.Sheets(2).Select
Set rr = Range("A21:J22")
For Each cell In rr
cell.Select
If cell.HasFormula = True And cell.Value = "" And cell.EntireRow.Hidden = False Then rows(cell.Row).EntireRow.Hidden = True
Next cell
End Sub
Sub dothefiles()
Dim NewPath As String
Dim iFileName$, iRow&
NewPath = Application.ThisWorkbook.Path & "\" & "Order"
If Dir(NewPath, 63) = "" Then MkDir NewPath
ActiveWorkbook.Sheets(2).Select
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=NewPath & "\" & [Sheet(1)!C17] & "-" & [Sheet(1)!C6] & " " & "Order" & " " & [Sheet(1)!C10] & " " & Date & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=No, _
OpenAfterPublish:=False
iFileName = NewPath & "\" & [Sheet(1)!C17] & "-" & [Sheet(1)!C6] & " " & "Order" & " " & [Sheet(1)!C10] & " " & Date & ".xls"
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.Calculation = xlManual
ThisWorkbook.Sheets(2).Copy
With ActiveWorkbook.ActiveSheet
.Buttons.Delete '.Shapes("Button 1").Delete
.UsedRange.Value = .UsedRange.Value
For iRow = .Cells(.rows.Count, 2).End(xlUp).Row To 5 Step -1
If Application.CountA(.rows(iRow)) = 1 Then .rows(iRow).Delete
Next
.SaveAs iFileName, xlExcel8: .Parent.Close
End With
Application.Calculation = xlAutomatic
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Sub doitallplease()
Call AutofitRows
Call removecellswithemptycells
Call removecellswithemptycells_pos2
Call dothefiles
End Sub
denke ich, dass der 'wrap' Tag hier fehl am Platze ist. Abgesehen davon funktioniert 'Autofit' nicht mit verbundenen Zellen, das ist leider ein bekanntes Problem. –
Wenn Umbruch für verbundene Zellen nicht möglich ist, kann ich sie "zusammenfassen", aber ich brauche dann "autofit", um durch meine Range zu gehen und zu prüfen, ob die Zellenhöhe erhöht werden muss. – mrwd
Es ist 'Autofit', das nicht funktioniert, nicht' Wrap'. Wie auch immer, ist das das einzige Problem, vor dem Sie stehen? Wenn nicht, versuch zuerst mit nicht zusammengepacktem Zeug zu arbeiten und führe die Verschmelzung am Ende durch. –