VBA将数据从一张纸传输到另一张纸

时间:2018-10-27 16:38:44

标签: excel vba userform

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下方打开。然后,如上面的userform4所示,Userform5的textbox1和textbox2从sheet1检索数据。

 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

单击Userform5 Commandbutton3时,我希望将工作表1中选定的行(即基于从工作表1中拉出的文本框1中的值)剪切并粘贴到工作表2中

大家好,

希望有人可以帮助我解决这个问题。如上面的代码所示,我可以在userform文本框中获取要添加到工作表2的值。该用户窗体从工作表1中检索一些记录。我试图实现的是从工作表1中检索该值时,我想要将其从工作表1切成工作表2。什么是最好的方法?

谢谢

关于, 凯文

1 个答案:

答案 0 :(得分:0)

这不是唯一的方法,但是请尝试使用数组。有关更多信息,请参见VBA Arrays And Worksheet Ranges

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.