excel清除依赖下拉列表vba
Posted
技术标签:
【中文标题】excel清除依赖下拉列表vba【英文标题】:excel clear dependent dropdownlist vba 【发布时间】:2013-10-19 16:50:21 【问题描述】:毕竟,我已经有了下拉列表、依赖项等,而且效果很好,而且我还有一个 vba 代码,当用户从下拉列表父项更改一个值时,依赖项会清除它们的内容。但是
这仅适用于该单元格...
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("C2")) Is Nothing Then
Range("D2").ClearContents
End If
End Sub
显然是因为我告诉 vba 只有 C2 和 D2,但我想要的是有人会帮助弄清楚如何使它成为整个列,而不仅仅是那个特定的单元格,例如 (column - 1 ) 或某事...因为如果我复制粘贴这些下拉列表仅适用于指定的第一个原因...
有人吗?有任何想法吗?请。
这里有一些图片
在上面的图片中,下拉列表仅在该特定单元格中有效,我尝试了 Hol 告诉我的功能 Cells(row index,columnIndex) 但我需要一个 for 或类似的东西不是吗?这是我在vba中做的第一件事,所以我没有线索,我正在寻找示例然后尝试,这需要太长时间哈哈哈,
我已经尝试过代替 "C2" 、 Column(3) 和 D2 Column(4) 但条件 If Not Intersect(Target, Range(Column(3))) Is Nothing Then
【问题讨论】:
您根据什么标准确定 C2 和 D2? (第 1 列)是什么意思?什么栏目?你不需要写“C2”。您还可以使用Cells
函数Cells(<row>,<column>)
,它允许您进行数学运算。或者你可以使用Target.Offset(0,-1)
嘿嘿,谢谢你的回答,我对 C2 和 D2 的意思是我有我的下拉列表以及我是如何工作的,但我需要带有下拉列表的列,并且显然只适用于 C2 和D2,列-1,我的意思是像在其他语言中的数组中一样,您制作类似于 column.length -1 哈哈哈只是为了说但结果令人困惑 抱歉,我会尝试您的建议谢谢
@Raf0c,最好查看您拥有或需要的架构或屏幕截图。之后我们可以尝试提供更准确的帮助。
谢谢,我会编辑帖子...
@Raf0c,为了清楚起见,您想成对工作-C2 清除 D2,C3 清除 D3,C4 >>D4,等等...??
【参考方案1】:
据我了解,您希望您的宏成对工作:C 列(从第 2 行底部方向开始)的任何更改都将清除同一行 D 列中的单元格。如果是这样,下面的代码就可以解决问题。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Target.Column = 3 Then
Target.Offset(0, 1).ClearContents
End If
End Sub
【讨论】:
+1 .. 但是在进行进一步更改时,您应该真正禁用事件。以上是关于excel清除依赖下拉列表vba的主要内容,如果未能解决你的问题,请参考以下文章
VBA代码根据excel工作簿中的值从webform下拉列表中选择一个值