Excel VBA 根据下拉框单元格的值来改变另一个下拉框单元格的值

摘要:
在许多报表开发中,需要VBA来设置Excel的一些规则。

在很多的报表开发中,需要用到VBA去设置Excel的一些规则。 

以下是一个根据下拉框单元格的值来给特定单元格进行赋值的代码:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error Resume Next:
    Application.ScreenUpdating = False
    If Target.Column = 7 Then        // 这是需要赋值的DDL列
        If Target.Offset(0, -2).Value = 13 Then  //表示赋值列往前移动两个单位的格子值
            With Selection.Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
             xlBetween, Formula1:="No"   //赋值为No
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = ""
            .ErrorTitle = ""
            .InputMessage = ""
            .ErrorMessage = ""
            .IMEMode = xlIMEModeNoControl
            .ShowInput = True
            .ShowError = True
            End With
        ElseIf Target.Offset(0, -2).Value <> 13 Then
            With Selection.Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
             xlBetween, Formula1:="=Exp"  //这里的Exp为自定义名字的列作为数据来源(Formulas -〉Name managers ) 
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = ""
            .ErrorTitle = ""
            .InputMessage = ""
            .ErrorMessage = ""
            .IMEMode = xlIMEModeNoControl
           .ShowInput = True
            .ShowError = True
            End With
        End If
    ElseIf Target.Column = 8 Then   //下面的逻辑用来控制,当第7列值为No时,会把第8,910,11列保护起来不能输入
        If Target.Offset(0, -1).Value = "No" Then
            Target.Locked = True
            Target.Offset(1, -6).Select
        End If
    ElseIf Target.Column = 9 Then
        If Target.Offset(0, -2).Value = "No" Then
            Target.Locked = True
            Target.Offset(1, -7).Select
        End If
    ElseIf Target.Column = 10 Then
        If Target.Offset(0, -3).Value = "No" Then
            Target.Locked = True
            Target.Offset(1, -8).Select
        End If
    ElseIf Target.Column = 11 Then
        If Target.Offset(0, -4).Value = "No" Then
            Target.Locked = True
            Target.Offset(1, -9).Select
        End If
    End If
    Application.ScreenUpdating = True
     
End Sub

免责声明:文章转载自《Excel VBA 根据下拉框单元格的值来改变另一个下拉框单元格的值》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Winpcap网络编程九之Winpcap实战,ARP协议获得MAC表及主机通信Docker是什么下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

EasyUI:年份、月份下拉框Demo

EasyUI:年份、月份下拉框Demo jsp中定义: <td style="text-align:center;"><font style="font-size: 12px;">年度:</font></td> <td style="text-align: left;">  ...

编辑datagridview单元格

以这3种为例,最简单的是第三种,直接让单元格处于可编辑状态,当完成编辑后触发CellEndEdit事件,最后对输入的数据进行处理。 1 private DateTimePicker dtp = new DateTimePicker(); 2 private ComBox sellstyle = new ComBox ();//设置全局变量 View C...

perl操作符

perl操作符 算数操作符 符号 表示 + 加法 - 减法 * 乘法 / 除法 % 取余 ** 幂指数 位运算 符号 表示 & 按位与 | 按位或 ^ 按位异或 ~ 按位取反 and 按位与 or 按位或 xor 按位异或 not 按位取反 >> 按位...

NPOI 自定义单元格背景颜色-Excel

NPOI针对office2003使用HSSFWorkbook,对于offce2007及以上使用XSSFWorkbook;今天我以HSSFWorkbook自定义颜色为例说明,Office2007的未研究呢 在NPOI中默认的颜色类是HSSFColor,它内置的颜色有几十种供我们选择,如果不够怎么办,不能修改底层的HSSFColor类; 大概解决思路: 1、将...

ElementUI的el-select怎样实现下拉多选并实现给下拉框赋值和获取值

场景 要实现的效果如下 官方示例代码实现多选 为el-select设置multiple属性即可启用多选,此时v-model的值为当前选中值所组成的数组。 默认情况下选中值会以 Tag 的形式展现,你也可以设置collapse-tags属性将它们合并为一段文字。 <template> <el-select v-model="valu...

[VC++]一些常用数据类型的使用

我们先定义一些常见类型变量借以说明 int i = 100; long l = 2001; float f=300.2; double d=12345.119; char username[]="bone"; char temp[200]; char *buf; CString str; _variant_t v1; _bstr_t v2; 一、其它数据类...