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下拉列表中选择一个值

EXCEL VBA - 根据单元格范围和字符串创建动态下拉列表[关闭]

Excel(VBA)下拉列表单个单元格中的多个值

根据excel中的下拉列表自动填充单元格

使用VBA excel在iFrame中单击下拉选项

Excel VBA 在 Excel 2016 中按多个条件进行多行排序