Kokujou
Lieutenant
- Registriert
- Dez. 2017
- Beiträge
- 948
Ehrlich gesagt bin ich am Ende mit meinem Latein. Ich bin eigentlich C# gewöhnt aber ich hab langsam das Gefühl dass das nicht ein Problem der Programmiersprache ist, sondern dass Excel mich hasst >.>
Alles was ich will, ist zählen wie viele Einträge sich in einer Zeile ähneln. Ich hätte mir nie träumen lassen dass ich dafür jetzt auch noch auf Makros zurückgreifen muss und selbst damit scheint es nicht zu klappen. Also vielleicht könnt ihr mir ja sagen was in diesem code kaputt ist.
Zum Aufbau: ich habe eine Matrix erstellt Spalten, 14 Zeilen, Beschriftung ausgeschlossen, deswegen hier und da ein paar offsets. Eingetragen habe ich immer sowas wie 6/42 und Excel hat dann ne lange Zahl daraus gemacht. Ich hab schon kommas zu Punkten konvertiert, ich habe gerundet, ich habe leere Zeilen entfernt und trotzdem will er einfach icht die gleichheit von gerundeten Werten erkennen.
Alles was ich will, ist zählen wie viele Einträge sich in einer Zeile ähneln. Ich hätte mir nie träumen lassen dass ich dafür jetzt auch noch auf Makros zurückgreifen muss und selbst damit scheint es nicht zu klappen. Also vielleicht könnt ihr mir ja sagen was in diesem code kaputt ist.
Zum Aufbau: ich habe eine Matrix erstellt Spalten, 14 Zeilen, Beschriftung ausgeschlossen, deswegen hier und da ein paar offsets. Eingetragen habe ich immer sowas wie 6/42 und Excel hat dann ne lange Zahl daraus gemacht. Ich hab schon kommas zu Punkten konvertiert, ich habe gerundet, ich habe leere Zeilen entfernt und trotzdem will er einfach icht die gleichheit von gerundeten Werten erkennen.
Code:
Sub Test()
Dim i, j As Integer
For i = 2 To 24
Dim temp(14) As Double
For j = 0 To 13
Dim value As String
Dim cell As Double
cell = Round(Cells(j + 2, i), 1)
value = Replace(CStr(cell), ",", ".")
Dim count As Integer
count = 0
For k = 0 To 13
If Round(Cells(2 + k, i), 1) = value And Len(Cells(j + 2, i)) > 0 Then
count = count + 1
End If
Next k
temp(j) = count
Cells(j + 19, i) = cell
Next j
Cells(17, i).value = WorksheetFunction.Max(temp) - 1
Next i
End Sub