Как заполнить ячейки листа Excel только заполненными текстовыми полями без каких-либо пустых ячеек? - PullRequest
0 голосов
/ 22 октября 2019

Я новичок в VBA, и недавно я разрабатывал калькулятор, чтобы помочь мне в работе. Я создал форму с несколькими флажками и текстовыми полями, в моем листе Excel у меня есть таблица, которая должна быть заполнена пользовательской формой. Тем не менее, я столкнулся с проблемами, в пользовательской форме есть флажок, который, когда проверено, пользователь должен ввести в текстовое поле, у меня есть ровно восемь аналогичных категорий (флажки и текстовые поля), поэтому все флажки ивсе заполненные текстовые поля должны отображаться в ячейках на листе, как бы я это ни делал, это то, что я использую строку:

Range("E5").Value = "Project Manager"

Для каждой из восьми категорий:он должен заполнять ячейки, не оставляя пустых ячеек.

Например, пользователь проверяет 5 из 8 полей и, соответственно, заполняет текстовое поле для каждого, если они пропустили одно из полей, это не должно делатьто же самое при печати их на ячейках.

Private Sub CommandButton1_Click()

Dim PMdays As Integer

If PMcheckBx.Value Then
    Range("E5").Value = "Project Manager"

    PMdays = PMtextBx.Value

    ActiveCell.Offset(0, 1) = PMdays
End If

End Sub

Поэтому я прикрепил изображение того, как я хочу, чтобы оно выглядело, и как я выглядел сейчас, чтобы помочь вам понять мою проблему в дальнейшем.

Как выглядит мой лист

Как должен выглядеть

1 Ответ

1 голос
/ 22 октября 2019

Вы можете сделать что-то вроде этого:

Private Sub CommandButton1_Click()

    Dim PMdays As Integer, c As Range

    Set c = ActiveSheet.Range("E5").Value '<< start list here

    If PMcheckBx.Value Then
        c.Resize(1,2).Value = Array("Project Manager", PMtextBx.Value)
        Set c = c.Offset(1, 0) 'move down one row
    End If

    'next 7 checkboxes 

End Sub

Обратите внимание, что ActiveCell / Выбор / Активация не требуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...