Как скопировать значение из текстового поля Userform в несколько ячеек электронной таблицы

#excel #vba #userform

Вопрос:

У меня есть простая форма пользователя с двумя текстовыми полями. Пользователь должен ввести описание детали в один помеченный «Идентификатор панели», а количество строк, в которых это описание должно быть введено в том же столбце электронной таблицы (Количество). К настоящему времени я в порядке с добавлением значения в пустую строку, но застрял при копировании значения в другие ячейки. У меня есть код для копирования значения в заданном диапазоне, но я не могу найти ничего, что подходит для того, что я ищу. Спасибо

Яблоки Апельсины Список

   Private Sub SubmitBtn_Click()
  Dim iRow As Long, C As Long
  Dim sh As Worksheet


  Set sh = ThisWorkbook.Sheets("Data")

  iRow = sh.Cells(Rows.Count, 1).End(xlUp).Row   1
  C = QTYBox.Value

  With sh

  .Cells(iRow, 1) = TxtPanel.Value
  
  End With

  End Sub

  Private Sub UserForm_Initialize()

  'Empty Panel ID cell
  TxtPanel.Value = ""

  'Empty Quantity cell
  QTYBox.Value = ""

  'Set focus to panel ID cell
  TxtPanel.SetFocus

  End Sub
 
 

Это код для второй проблемы:
электронная таблица формы ящика
для ящиков

 Private Sub SubmitBtn_Click()

    Dim i As Long
    Dim sh As Worksheet
    Dim lRow As Long

    Set sh = ThisWorkbook.Sheets("Data")
    lRow = sh.Cells(Rows.Count, 1).End(xlUp).Row

    With sh
        For i = 2 To lRow

            'Criteria search        
            If .Cells(i, 1).Value = PanelTxt.Value Then
                If .Cells(i, 2).Value = IDTxt.Value Then           
                    'Enter date in Crated and Crate #
                    .Cells(i, 5) = [Text(Now(), "DD-MM-YY HH:MM")]
                    .Cells(i, 6) = CrateTxt.Value
                    Exit For
                End If
            End If

        Next
    End With

End Sub
 

Комментарии:

1. Попробуй .Cells(iRow, 1).Resize(C) = TxtPanel.Value

2. Идеальный. Как всегда, миллион благодарностей…

3. Теперь я нахожусь на второй части того же стола. Предполагается, что разные отделы упаковывают панели и сканируют, какие из них упакованы. Когда они отправят ; Мне нужно, чтобы дата и номер ящика были введены в столбцы E и F для правильной строки панели (идентификатор панели и идентификатор# «КОЛ-во»). Я попробовал код, но он ничего не делает. Не уверен, чего не хватает. Код добавляется к исходному сообщению.

4. Я не вижу ничего плохого. Может быть, добавить обрезку If .Cells(i, 1).Value = Trim(PanelTxt.Value) Then на случай, если это просто скрытые места. Я заметил, что у вас было TxtPanel в первой форме и PanelTxt в форме ящика, старайтесь быть последовательными, потому что именно там любят прятаться жуки :).

5. К сожалению, ничего не происходит. Хм, попробую поиграть с ним еще немного. Я изменил настройку с электронными таблицами, так что теперь это совершенно отдельная электронная таблица с другой формой. Просто чтобы посмотреть, не скрываются ли какие-то ошибки в наличии двух разных форм в одной и той же электронной таблице. Но это все равно не работает.