从MSAccess VBA引用XLS选择列表

时间:2018-08-01 23:08:52

标签: excel vba ms-access access-vba

我有一个MS Access应用程序,该应用程序将表导出到XLS,然后应用格式设置。

我试图从同一工作簿中工作表2(“费用类型”)中的值列表中为工作表1(“费用”)中的一系列单元格创建一个选择列表。

我使用XLS的“记录宏”开始学习。该选择列表可以在XLS上运行,但是在尝试从MSAccess VBA实施时失败。

这是失败的代码段(错误1004-应用程序定义的错误或对象定义的错误)

' Validation

With wks1.Range("G4:G10").Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:="= wbk.Sheets('Expense Types')!$B$3:$B$10"
    .IgnoreBlank = True
    .InCellDropdown = True
    .InputTitle = ""
    .ErrorTitle = ""
    .InputMessage = ""
    .ErrorMessage = ""
    .ShowInput = True
    .ShowError = True
End With

wks1.Range("A4").Select

一旦我知道引用选择列表的源和目标信息所需的格式/语法,就可以进行非常简单的猜测。

1 个答案:

答案 0 :(得分:0)

wbk.Sheets('Expense Types')是VBA(某种),不属于Formula1参数。

尝试:

Formula1:="='Expense Types'!$B$3:$B$10"

编辑 如果尚未声明这些常量,并且正在使用后期绑定,则需要添加:

Const xlValidateList = 3
Const xlValidAlertStop = 1
Const xlBetween = 1