Excel VBA - 使用ComboBox值将多个单元格的数据复制到另一个工作表

时间:2016-08-22 11:43:54

标签: excel vba excel-vba combobox

Sheet1 =包含填写数据 Sheet2 =包含所有信息

我使用Sheet 2 A2列:A81作为Combobox1项目, 我需要在选择项目时,同一行的以下单元格将被复制到sheet1,例如;

表2:

Shop1 Germany 11111111

Shop2 Italy 2222222

Shop3 UK 33333333

Shop4 Russia 44444444

选择组合框项目:[Shop4]

工作表2中的数据被复制到sheet1

表1:

Shop4 Russia 44444444

任何人都知道如何执行此操作?

3 个答案:

答案 0 :(得分:0)

这包括触发combo box的代码, 你可以这样做,

Private Sub ComboBox1_Change()
   Sheets("Sheet1").Cells(2, 5).Resize(, 5).Value = _
   Sheets("Sheet2").Cells(ComboBox1.ListIndex + 2, 1).Resize(, 5).Value
End Sub

但是,我不知道您希望数据在Sheet1的哪个位置,因此您必须修改该范围以满足您的需求。

答案 1 :(得分:0)

您的Sheet1听起来像一个表单,即可重复使用的模板。在这种情况下,使用“选择”单元格上的Data Validation和“复制数据”单元格上的VLOOKUP()就足够了,无需任何控件或VBA。

答案 2 :(得分:0)

好的,管理解决它:

Me.ComboBox1.List = Worksheets("Sheet2").Range("A2:A81").Value

        Worksheets("Sheet2").Cells(ComboBox1.ListIndex + 2, 1).Copy Worksheets("Sheet1").Cells(lastrow, 1)
        Worksheets("Sheet2").Cells(ComboBox1.ListIndex + 2, 2).Copy Worksheets("Sheet1").Cells(lastrow, 2)
        Worksheets("Sheet2").Cells(ComboBox1.ListIndex + 2, 3).Copy Worksheets("Sheet1").Cells(lastrow, 3)
        Worksheets("Sheet2").Cells(ComboBox1.ListIndex + 2, 4).Copy Worksheets("Sheet1").Cells(lastrow, 4)
        Worksheets("Sheet2").Cells(ComboBox1.ListIndex + 2, 5).Copy Worksheets("Sheet1").Cells(lastrow, 5)

谢谢:)