Как выполнить эту функцию с помощью VBA в Excel?

Как выполнить эту функцию с помощью VBA в Excel?

Я пытаюсь реализовать эту функцию в 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.

Связанный контент