Найти следующую пустую строку, затем добавить формулу

У меня есть пользовательская форма, которая будет вставлять значение combobox1 в следующую доступную строку в столбце B. Справа есть 3 столбца (C, D и E), в которых есть формулы vlookup, которые я хотел бы заполнить при вставке значения combobox1. в колонку Б.

Это формула vlookup, и B123 будет значением combobox1 для этой конкретной строки. =ЕСЛИОШИБКА(ВПР(B123,'Лист1'!$A$3:$C$370,2,0),0)/1000000

Это то, что я пробовал до сих пор

  Dim nextrow As Long 
  Dim nextrow1 As Long
  Dim nextrow2 As Long
  nextrow = Cells(Rows.Count, "C").End(xlUp).Row + 1
        .Range(rows.count, nextrow - 1).FillDown
  nextrow1 = Cells(Rows.Count, "D").End(xlUp).Row + 1
        .Range(rows.count, nextrow - 1).FillDown
  nextrow2 = Cells(Rows.Count, "E").End(xlUp).Row + 1
        .Range(rows.count, nextrow - 1).FillDown
  End Sub

Этот код вставит значение поля со списком в следующую доступную строку в столбце B.

Private sub CommandButton1_click()

    With Worksheets("sheet")
        .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0) = ComboBox1.Value 
        .Cells(.Rows.Count, "B").End(xlUp).Offset(1, 0) = ComboBox2.Value 
    End With
ActiveWorkbook.RefreshAll
Unload Me

Я предлагаю сначала заполнить все значения в столбце B, а позже вы можете перетащить свои формулы в C, D и E. Запишите макрос, чтобы увидеть код, который нужно перетащить.

Foxfire And Burns And Burns 22.05.2019 17:01

Я мог бы сделать это, однако значения столбца B добавляются по 1-3 за раз, в то время как формулы в C, D и E необходимы сразу после заполнения B. @FoxfireAndBurnsAndBurns

Tmacjoshua 22.05.2019 17:14

Я понимаю, что вы имеете в виду @FoxfireAndBurnsAndBurns, но не знаю, как ссылаться на диапазон, поскольку постоянно добавляются новые значения.

Tmacjoshua 22.05.2019 17:25

Как ваш код переносит значение из ComboBox в следующую пустую ячейку в Col B?

GMalc 22.05.2019 17:42

@GMalc обновлен, чтобы показать правильный код

Tmacjoshua 22.05.2019 18:00

Смотрите мое обновление, добавлены границы

GMalc 22.05.2019 20:31
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
0
6
384
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Private sub CommandButton1_click()

With Worksheets("sheet")
    .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0) = ComboBox1.Value 
    .Cells(.Rows.Count, "B").End(xlUp).Offset(1, 0) = ComboBox2.Value
    .Cells(Rows.Count, "B").End(xlUp).Offset(-1, 1).Resize(, 3).AutoFill .Cells(Rows.Count, "B").End(xlUp).Offset(-1, 1).Resize(, 3).Resize(2)

    With .Cells(Rows.Count, "B").End(xlUp).Offset(-1, 1).Resize(, 3).Resize(2)
        .Borders.LineStyle = xlContinuous
    End With                   

End With
ActiveWorkbook.RefreshAll
Unload Me

Ок работает отлично спасибо. Как бы я также добавил границу вокруг этого диапазона? Я записал макрос, но не уверен, что изменить диапазон, поскольку он зависит от того, сколько значений добавлено в поле со списком.

Tmacjoshua 22.05.2019 20:19

Я добавил еще одно текстовое поле, которое я хотел бы перевести в столбцы ячейки 2 по сравнению со значением combobox1. Как я могу это сделать?

Tmacjoshua 23.05.2019 15:42

Также, если поле со списком/текстовое поле пусто, я бы хотел, чтобы связанная ячейка оставалась прежней.

Tmacjoshua 23.05.2019 15:49

@Tmacjoshua, было бы лучше, если бы вы задали это как еще один вопрос.

GMalc 23.05.2019 17:51

не могли бы вы взглянуть на этот вопрос, пожалуйста. stackoverflow.com/questions/56327603/…

Tmacjoshua 27.05.2019 21:17

Другие вопросы по теме