|
楼主 |
发表于 2009-7-5 10:04
|
显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
原帖由 口是心非 于 2009-7-3 19:56 发表
袁版,在你的帖子:12-3 动态的数据有效性 这节中,为何我将该段代码写入thisworkbook中就无法执行呢?你的代码是写在了sheet1中,而且多了这一行:Option Explicit。请问这该如何解释?
还有就是代码中的第 ...
这是用sheet1工作表事件实现的,如果要写到thisworkbook中,那是工作簿的事件,也就是Workbook_SheetChange和Workbook_SheetSelectionChange事件了,代码如下:- Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
- If Target.Column = 1 And Target.Count = 1 And Target.Row > 1 Then
- With Target.Validation
- .Delete
- .Add Type:=xlValidateList, _
- AlertStyle:=xlValidAlertStop, _
- Operator:=xlBetween, _
- Formula1:="主机,显示器"
- End With
- End If
- End Sub
- Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
- If Target.Column = 1 And Target.Row > 1 And Target.Count = 1 Then
- With Target.Offset(0, 1).Validation
- .Delete
- Select Case Target
- Case "主机"
- .Add Type:=xlValidateList, _
- AlertStyle:=xlValidAlertStop, _
- Operator:=xlBetween, _
- Formula1:="Z286,Z386,Z486,Z586"
- Case "显示器"
- .Add Type:=xlValidateList, _
- AlertStyle:=xlValidAlertStop, _
- Operator:=xlBetween, _
- Formula1:="三星17,飞利浦15,三星15,飞利浦17"
- End Select
- End With
- End If
- End Sub
复制代码 就样才能在工作簿的每一张工作表中实现此功能,当然也可以使用Sh参数指定工作簿中的若干张工作表有此功能。
Option Explicit 语句强制使用变量声明。 |
|