【发布时间】:2015-06-03 15:53:32
【问题描述】:
我想知道是否有人可以帮助我。我创建了一个带有 3 个组合框的用户表单。组合框 1 和 2 列出所有打开的工作簿。 Combobox 3 列出了 Combobox 2 中的工作表。我现在想运行 Vlookup。查找值是每个单元格中的值(在本例中为产品代码),从 D9 开始到 Combobox2 的第一个工作表的 D 列中具有值的最后一个单元格。查找范围将是(“A5:S###”[行数因文件而异]”)。 Vlookup 公式应位于 Combobox2 值的第一个工作表的 I 列中,从“I9”开始循环遍历 I9 中的每个单元格,直到查找 D9 中的所有代码。 我不断收到错误,主要是“运行时错误'9'”:下标超出范围。这是我的代码。
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
【问题讨论】:
-
我忘了提到用户窗体与我要运行 VLookup 的文件位于单独的工作簿中