Я пытаюсь реализовать эту функцию в VBA, но я новичок в этом деле. Кажется, я не знаю, как это сделать:
Я пытаюсь сделать следующее: для каждой числовой ячейки в столбце B я хочу взять следующие две ячейки в столбце H, то есть, если это B7, я хочу взять H8 и H9 (следующие два значения строки в столбце H), объединить их (они строки) и сохранить в I7 (та же строка, что и B7) и, наконец, удалить значения в H8, H9.
Вот до чего я дошел. Знаю, что это не так уж много.
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
решение1
Я обнаружил, IsNumeric(B)
что это верно для пустых ячеек, поэтому я изменил ваше If
утверждение соответствующим образом. Это сработало для меня:
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
Очевидно 8
, и 9
являются номерами столбцов для H
и I
, соответственно. Я добавил
If B.Row > 9 Then Exit For
линия, потому что у меня возникла проблема с циклом, который не завершался; если
For Each B In ClientTable.Columns(2).Cells
работает для вас, вы можете вынуть If B.Row > 9 Then Exit For
.