2011-05-09 53 views
1

我正在尝试使用用户窗体提取数据。使用用户窗体提取数据

这里是Excel列的结构:

sheet1: 
column 1|column 2|column 3|column 4|column 5 
Sheet2: 
column 1|column 2| ......................................... column xx 

列1S是在两片材相同。我希望从下拉列表中选择第1列的任何值,并且这些字段应显示在基于列1的选定值的用户表单中。

第1列| sheet1的第2列|第2列 - 列表2的xx |列3,4,表1

这里的5是我创建的代码,但它无法挑选所需的数据

Private Sub ComboBox1_Change() 

    Application.ScreenUpdating = False  
    Dim CL As Object 

    Worksheets(2).Select 

    For Each CL In Worksheets(2).Range("A2:A20") 
    If CL = ComboBox1.Text Then 
     Range(ActiveCell, ActiveCell.Offset(0, 4)).Copy Destination:=ActiveCell.Offset(0, 5)  
    End If 
    Next 

    Worksheets(2).Select 
End Sub 

Private Sub UserForm_Activate() 
    ComboBox1.RowSource = ("A2:A20") 
End Sub 
+0

首先,将ComboBox1.RowSource =(“A2:A20”)更改为ComboBox1.RowSource = “A2:A20”'包括额外的括号往往会导致问题VBA – barrowc 2011-05-10 05:39:02

回答

0

如何像...

Private Sub ComboBox1_Change() 

    Application.ScreenUpdating = False  
    Dim CL As Excel.Range 

    For Each CL In Worksheets(2).Range("A2:A20") 
     If CL = ComboBox1.Text Then 
      '# CL.Resize(0, 5).Copy Destination:=CL.Offset(0, 5) 
      '# Or even better... 
      CL.Offset(0, 5).Resize(0, 5).Value = CL.Resize(0, 5) 
     End If 
    Next 

    Application.ScreenUpdating = True 
End Sub 

Private Sub UserForm_Activate() 
    ComboBox1.RowSource = "A2:A20" 
End Sub 

我我仍然不知道这是什么实现...