Ввод UserformTextbox создает 2 новые строки и вставки ввода в каждую строку - PullRequest
0 голосов
/ 25 апреля 2020

Следующие текстовые поля в пользовательской форме:

ClientFirstName
ClientLastName
Referral1FirstName
Referral1LastName

Текущий код:

Private Sub CommandBox_Click()
Dim emptyRow as Long 

'MakeSheet1 active
Sheet1.Activate

'Determine emptyRow
emptyRow = WorksheetFunction.CountA(Range("A:A"))+1

'Transfer Information
Cells(emptyRow, 1).Value = ClientFirstName.Value
Cells(emptyRow, 2).Value = ClientLastName.Value
Cells(emptyRow, 3).Value = Referral1FirstName.Value
Cells(emptyRow, 4).Value = Referral1LastName.Value

End Sub

В идеале текстовое поле должно вводить данные для пустой строки 1, а затем вставлять новую строку, где столбцы C и D находятся в строке 2 (в позициях столбцы A и B)

Идеальный результат

enter image description here

1 Ответ

0 голосов
/ 26 апреля 2020

Чтобы немного повысить эффективность вашего кода, вы можете переписать его, как показано ниже, но ваша логика c выглядит надежно, и я ожидаю правильных результатов? Ниже коде предполагает, что referralname должно быть в строке ниже:

Private Sub CommandBox_Click()
Dim emptyRow as Long 
Dim TargetSheet as Worksheet

'Direct code to run on Sheet1
Set TargetSheet = ThisWorkbook.Sheet1 'Could also be ThisWorkbook.Sheets("SheetNameHere")
With TargetSheet

    'Determine emptyRow                 
    emptyRow = TargetSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1

    'Transfer Information 
    .Cells(emptyRow, 1).Value = Me.ClientFirstName.Value 
    .Cells(emptyRow, 2).Value = Me.ClientLastName.Value
    'Assuiming you want the referral name values in the row below the client name, 
     'include 'Offset(1, 0) to offset the target by 1 row.
    .Cells(emptyRow, 1).Offset(1, 0).Value = Me.Referral1FirstName.Value
    .Cells(emptyRow, 2).Offset(1, 0).Value = Me.Referral1LastName.Value

End with

End Sub

Теперь мы не полагаемся на то, что ActiveSheet является правильным листом во время выполнения. Иногда вы можете получить несколько забавных результатов с тем, как вы находили последнюю строку, где метод, который я использовал, аналогичен переходу к концу таблицы и удерживанию Ctrl + .

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