2015-06-03 231 views
-1

我想知道是否有人可以帮助我。我用3个组合框创建了一个用户窗体。组合框1和2列出了所有打开的工作簿。 Combobox 3列出了Combobox 2的工作表。我现在想运行一个Vlookup。查找值是从D9开始到Combobox2的第一个工作表的第D列中的值为最后一个单元格的每个单元格中的值(在本例中为产品代码)。查找范围将为(“A5:S ###”[行数因文件而异]“) Vlookup公式应该位于Combobox2的值为”I9“循环的第一个工作表的第一列中通过I9的每个细胞,直到D9所有的代码都抬头 我不断收到错误的主要一个是“运行时错误‘9’”:下标超出范围下面是我的代码VBA:两个工作簿之间的VLookup

Option Explicit 

Private Sub CancelButton_Click() 
    Stopped = True 
    Unload Me 
End Sub 

Private Sub ComboBox1_Change() 
Dim ScheduleA As Workbook 
Dim Termset As Worksheet 
Set ScheduleA = Workbooks(Me.ComboBox1.Value) 
    With Me.ComboBox3 
    For Each Termset In ScheduleA.Worksheets 
      .AddItem Termset.Name 
    Next Termset 
    End With 
End Sub 


Private Sub FillACDButton_Click() 
    Dim ACDRebateInfo As Worksheet 
    Dim lastRow As Long 
    Dim NewRebate As Single 
    Dim NewRebateType As String 
    Dim LookUp_Range As Range 
    Dim ActionCode As String 
    Dim ACD_NewRebate As Range 
    Dim ACD_NewRebateType As Range 
    Dim ACD_ActionCode As Range 
    Dim SCC As Range 
    Dim Cell As Range 
    Set ACDRebateInfo = Workbooks(Me.ComboBox2.Value).Worksheets(1) 
    Set ACD_NewRebate = ACDRebateInfo.Range("I9:I500") 
    Set ACD_NewRebateType = ACDRebateInfo.Range("J9:J500") 
    Set ACD_ActionCode = ACDRebateInfo.Range("B9:B500") 
    Set LookUp_Range = Worksheets(Me.ComboBox3.Value).Range("A5:S400") 
    Set SCC = ACDRebateInfo.Range("D9:D230") 
    With ACDRebateInfo 
    For Each Cell In ACD_ActionCode 
    ActionCode = Application.WorksheetFunction.VLookup(SCC, LookUp_Range, 17, False) 
    Next Cell 
    End With 
    Unload Me 
End Sub 



Private Sub UserForm_Initialize() 
    Dim wkb As Workbook 
     For Each wkb In Application.Workbooks 
      Me.ComboBox1.AddItem wkb.Name 
      Me.ComboBox2.AddItem wkb.Name 
    Next wkb 
End Sub 
+0

我忘了提及用户表单与我想运行VLookup的文件分开的工作簿,请致电 – automateit

回答

0

。不知道这是你的问题,但这段代码是没有意义的:

For Each Cell In ACD_ActionCode 
    ActionCode = Application.WorksheetFunction.VLookup(SCC, LookUp_Range, 17, False) 
Next Cell 

您通过活动代码循环,但不使用Cell变量

+0

AnalystCave.com非常感谢您的回复。你明白我在做什么?我是通过操作代码进行循环的,但是没有使用单元变量,这意味着什么。本质上,Combobox 2的工作簿是由我用来允许对项目进行更改(价格,回扣)的合同管理系统生成的上传模板。因此,我试图将所有相关数据(操作代码,回扣值,回扣类型)从Combobox3值/选择的工作表中拖放到模板中。 – automateit

相关问题