Ich versuche, diese Funktion in VBA zu erhalten, bin aber neu darin. Ich weiß nicht, wie ich das hinbekomme:
Ich versuche Folgendes: Für jede numerische Zelle in Spalte B möchte ich die nächsten beiden Zellen in Spalte H nehmen. Wenn es also B7 ist, möchte ich H8 und H9 nehmen (die nächsten beiden Zeilenwerte in Spalte H), sie verketten (es sind Zeichenfolgen) und sie in I7 speichern (dieselbe Zeile wie B7) und schließlich die Werte in H8, H9 löschen.
Hier bin ich angekommen, ich weiß, es ist nicht viel.
Private Sub CommandButton1_Click()
Dim B As Range, H As Range, I As Range
For Each B In ClientTable.Columns(2).Cells
If IsNumeric(B) Then
(What should be done here?)
End If
Next B
End Sub
Antwort1
Ich habe festgestellt, IsNumeric(B)
dass dies für leere Zellen zutrifft, also habe ich Ihre If
Aussage entsprechend geändert. Das hat bei mir funktioniert:
If IsNumeric(B) And B <> "" Then
Cells(B.Row, 9) = Cells(B.Row + 1, 8) & Cells(B.Row + 2, 8)
Cells(B.Row + 1, 8) = ""
Cells(B.Row + 2, 8) = ""
End If
If B.Row > 9 Then Exit For
Offensichtlich sind 8
und 9
die Spaltennummern für H
bzw. I
. Ich habe die
If B.Row > 9 Then Exit For
Zeile, weil ich ein Problem mit der Schleife hatte, die nicht beendet wurde; wenn
For Each B In ClientTable.Columns(2).Cells
für Sie funktioniert, können Sie das herausnehmen If B.Row > 9 Then Exit For
.