跨工作簿引用数据有效性在2003必须用VBA才能实现。
先建立工作簿Book1.xls,在A列建立数据源并保存工作簿。再建立ABC.xls工作簿并在sheet1工作表输入下面代码,如更改工作簿名称代码中的工作簿名称需作相同更改。ABC.xls工作簿从第3行起点击任何单元格均可。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim arr
If Target.Row < 3 Then Exit Sub
a = Target.Row: B = ActiveCell.Column
Workbooks.Open ThisWorkbook.Path & "\Book1.xls"
C = Workbooks("Book1.xls").Worksheets("Sheet1").Range("A65536").End(xlUp).Row
arr = Workbooks("Book1.xls").Worksheets("Sheet1").Range("A1:A" & C).Value
arr = Application.Transpose(arr)
With Workbooks("abc.xls").Worksheets("Sheet1").Cells(a, B).Validation
.Delete
.Add 3, 1, 1, Join(arr, ",")
End With
Workbooks("Book1.xls").Close False
End Sub