Ich weiß, dass das ein leichtes wird, aber ich kann es einfach nicht nach Tagen des Probierens und Googles schaffen, also hörte ich mich nicht wie ein Idiot an, der hier fragt.VBA Find Next Column start loop wieder
Ich arbeite an, was ein einfacher Code sein sollte, um Werte in Spalten numerisch zu überprüfen sind in der Tat numerisch, zählt die Vorkommen und druckt die cell.address.
Es gibt zahlreiche Spalten in zahlreichen Arbeitsblättern zu suchen und der Code funktioniert gut für die erste Spalte in allen Arbeitsblättern Ich kann nicht gerade den findNext Code rechts, so dass es durch alle numerischen Spalten vor dem Verschieben auf das nächste Arbeitsblatt. (Code enthält den Start für die Überprüfung des Datums für eine zweite Schleife, wenn ich numerisch aussortiert bin)
Ich wäre sooooo dankbar für jede Hilfe, so dass ich nicht mehr Haare verlieren. Entschuldigung im Voraus Ich bin sehr neu in VBA.
Code:
Sub ErrorFormatCount()
Dim j As Long
Dim LastRow, LastCol, DateCol, AssetCol, NumericCol As Long
Dim ErrorCount, Counter As Integer
Dim Toolwb As Workbook
Dim ws As Worksheet
Application.ScreenUpdating = False
Set Toolwb = Workbooks("EDTDoctor")
Toolwb.Sheets("Infrastructure").Activate
For Each ws In Worksheets
If ActiveSheet.Name = "EndSheetName" Then
Exit For
End If
'On Error Resume Next
NumericCol = ActiveSheet.Rows(7).Find("Numeric", Lookat:=xlWhole).Column
DateCol = ActiveSheet.Rows(7).Find("Date", Lookat:=xlWhole).Column
AssetCol = Rows(4).Find(What:="1035", Lookat:=xlWhole).Column
LastRow = ActiveSheet.Cells(Rows.Count, AssetCol).End(xlUp).Row
LastCol = ActiveSheet.Cells(AssetCol, Columns.Count).End(xlToLeft).Column
For j = 8 To LastRow
ErrorCount = 0
Counter = Toolwb.Sheets("Cover").Cells(41, "G").Value
NextPrintCell = Toolwb.Sheets("Cover").Cells(Rows.Count, "G").End(xlUp).Offset(1, 0).Row
If Not IsNumeric(Toolwb.ActiveSheet.Cells(j, NumericCol)) Then
ActiveSheet.Cells(j, NumericCol).Select
Toolwb.Sheets("Cover").Cells(NextPrintCell, "G") _
= ActiveCell.address(RowAbsolute:=False, ColumnAbsolute:=False, External:=True)
ErrorCount = Application.WorksheetFunction.CountA(ActiveCell)
Toolwb.Sheets("Cover").Cells(41, "G").Value = ErrorCount + Counter
End If
Next j
Toolwb.ActiveSheet.Next.Activate
Next ws
Application.ScreenUpdating = True
Toolwb.Sheets("Cover").Activate
MsgBox ("Checked For Formatting Errors" & vbNewLine & vbNewLine _
& "Format Errors Found" & " - " & Counter), vbInformation = vbOKOnly
End Sub
‚Mit Excel 2010
Denken Sie, wir brauchen ein bisschen mehr Details, wohin die Ergebnisse gehen sollten. – SJR
Keine Sorge. Der Code durchläuft alle Zeilen in ausgewählten Spalten (Spalten in jedem ws mit einem Kopf in Zeile (7) "numerisch" in den meisten Arbeitsblättern (außer dem ersten Blatt "Cover" und letzten "EndSheetName") Das kumulative Ergebnis für G41 und kopiert die Zellenadresse beginnend bei Cover! G43 für jeden gefundenen numerischen Fehler in die nächste Zeile. Leider ist es mir nicht möglich, die Arbeitsblattstruktur zu ändern, da diese Ausgabe von den Kundendaten festgelegt wird Lassen Sie mich wissen, wenn Sie weitere Informationen benötigen oder wenn Sie eine Probe hochgeladen haben? – AmetureHour