VBA Перенос данных с одного листа на другой - PullRequest
0 голосов
/ 27 октября 2018
Private Sub CommandButton11_Click()

Load UserForm5

If TextBox1.Value = "" Or ComboBox1.Value = "" Then
MsgBox "Incomplete Data", vbCritical, ""

Exit Sub
End If

UserForm5.TextBox1 = UserForm4.TextBox1.Value
UserForm5.TextBox2 = UserForm4.ComboBox1.Value

UserForm5.Show

End Sub

Примечание. При нажатии CommandButton11 (вверху - userform4) он открывается под userform5.Пользовательские формы textbox1 и textbox2 затем извлекают данные из листа1, как показано в пользовательской форме4 выше.

 Private Sub CommandButton3_Click()

 Dim emptyRow As Long

 'Make Sheet 2 active
 Sheets("Sheet2").Activate

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

'Transfer information from userform fields to Sheet 2
 Cells(emptyRow, 2).Value = TextBox1.Value
 Cells(emptyRow, 3).Value = TextBox2.Value
 Cells(emptyRow, 5).Value = TextBox3.Value
 Cells(emptyRow, 7).Value = TextBox4.Value
 Cells(emptyRow, 8).Value = TextBox5.Value

 End Sub

Когда нажата пользовательская кнопка CommandBut3, я хочу, чтобы строки были выбраны в sheet1 (т. Е. На основе значения из textbox1, извлеченного из sheet1) быть вырезанным и вставленным в лист2

Привет всем,

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

Спасибо

С уважением, Кевин

1 Ответ

0 голосов
/ 27 октября 2018

Это не единственный способ, но попробуйте массив.Для получения дополнительной информации см. Массивы и таблицы VBA .

Dim rngOldRow, rngNewRow, arrValuesInRow

Set rngOldRow = Worksheets(1).Range("A10:N10") 'Defines the old row.
Set rngNewRow = Worksheets(2).Range("A5:N5") 'Defines the new row.

arrValuesInRow = rngOldRow 'Copies values to an array variable.

arrValuesInRow(1, 2) = TextBox1.Value 'Changes values in the array.
arrValuesInRow(1, 3) = TextBox2.Value
arrValuesInRow(1, 5) = TextBox3.Value
arrValuesInRow(1, 7) = TextBox4.Value
arrValuesInRow(1, 8) = TextBox5.Value

rngNewRow.Value = arrValuesInRow 'Copies from the array to Sheet 2.

rngOldRow.Delete Shift:=xlUp 'Deletes the row on Sheet 1.
...