Excel - несколько записей в мастер-лист - PullRequest
0 голосов
/ 03 декабря 2018

В настоящее время я ввожу данные в 3 ячейки и нажимаю кнопку, которая затем передает данные в таблицу.В моем коде в настоящее время один клик равен одной записи.Я хотел бы иметь возможность для нескольких записей за клик в зависимости от значения в поле.Я добавил поле, но я просто не уверен, как его кодировать.Любые предложения?

Вот как выглядит страница ввода This is what the entry page looks like

Это основная таблица, которую она записывает в This is the mastersheet it writes to

Private Sub CommandButton21_Click()

Dim s1, s2
Set s1 = Worksheets("Master")
Set s2 = Worksheets("Sheet1")

With s1.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).EntireRow
    .Cells(, "a").Value = s2.Range("p20").Value
    .Cells(, "b").Value = s2.Range("p21").Value
    .Cells(, "c").Value = s2.Range("c4").Value
    .Cells(, "d").Value = s2.Range("c7").Value
    .Cells(, "e").Value = s2.Range("c10").Value
    s2.Range("c4").FormulaR1C1 = ""
    s2.Range("c7").FormulaR1C1 = ""
    s2.Range("c10").FormulaR1C1 = ""

End With
End Sub

Любая помощь будет принята с благодарностью!

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018
Private Sub CommandButton21_Click()

Dim s1 As Worksheet, s2 As Worksheet
Set s1 = Worksheets("Master")
Set s2 = Worksheets("Sheet1")

For i = 1 To s2.Range("I7").Value
With s1.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).EntireRow
    .Cells(, "a").Value = s2.Range("p20").Value
    .Cells(, "b").Value = s2.Range("p21").Value
    .Cells(, "c").Value = s2.Range("c4").Value
    .Cells(, "d").Value = s2.Range("c7").Value
    .Cells(, "e").Value = s2.Range("c10").Value

End With
Next i
s2.Range("c4").FormulaR1C1 = ""
s2.Range("c7").FormulaR1C1 = ""
s2.Range("c10").FormulaR1C1 = ""
s2.Range("i7").FormulaR1C1 = "1"


End Sub
0 голосов
/ 03 декабря 2018

Не очень элегантно, но легко реализовать:

Private Sub CommandButton21_Click()

Dim s1 As Worksheet, s2 As Worksheet, i As Integer, LpCount As Integer
Set s1 = Worksheets("Master")
Set s2 = Worksheets("Sheet1")
If Not s2.Range("I7").Value > 1 Then LpCount = 1 Else LpCount = s2.Range("I7").Value

For i = 1 To LpCount
    With s1.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).EntireRow
        .Cells(, "a").Value = s2.Range("p20").Value
        .Cells(, "b").Value = s2.Range("p21").Value
        .Cells(, "c").Value = s2.Range("c4").Value
        .Cells(, "d").Value = s2.Range("c7").Value
        .Cells(, "e").Value = s2.Range("c10").Value
    End With
Next i
s2.Range("c4").FormulaR1C1 = ""
s2.Range("c7").FormulaR1C1 = ""
s2.Range("c10").FormulaR1C1 = ""
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...