【发布时间】:2018-08-07 02:25:27
【问题描述】:
我有一张 Excel 表格,我可以从下拉列表中选择多个项目。
选择特定项目后,将运行特定宏,将 vlookup 公式粘贴到单元格区域。
我的工作簿 VBA 如下所示:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Select Case Range("B2")
Case "Company 1"
Call Company1
Case "Company 2"
Call Company2
End Select
End Sub
我的宏如下所示
Sub Company1()
Range("D7:D14").Formula = "=VLOOKUP(B7,'SheetLocation\[Sheet1.xls]Sheet1'!$A$6:$E$93,3,FALSE)"
End Sub
Sub Company2()
Range("D7:D14").Formula = "=VLOOKUP(B7,'SheetLocation\[Sheet2.xls]Sheet2'!$A$6:$E$93,3,FALSE)"
End Sub
每次我选择值表单下拉列表时使用此类宏,我的 excel 都会挂起并显示错误 Runtime error 28 - Out of stack space。
需要你们的帮助。
【问题讨论】:
-
您不在乎 Range("B2") 在哪个工作表上?
-
我在乎,应该是 Sheet1,我知道它没有定义。尽管如此添加到代码中:
codeIf Not Intersect(Target, Range("B2")) Is Nothing 然后解决了这个问题。 -
你不能使用 worksheet_change 造成无限循环吗?
-
这个问题现在回答了吗?