excel - 使用 VBA 代码将 Excel 中的数据验证(下拉列表)转换为整列
问题描述
我设法将数据验证(下拉列表)插入列中的单行。但是,我想将数据验证扩展到最后一行。
在最后一行之前,我找不到任何关于数据验证被扩展的地方。澄清一下,这不是要更改数据验证列表,而是要在每一行中进行数据验证,直到最后一行。
Sub datavalidation()
Dim ws As Worksheet
Dim tbl As ListObject
Dim neC As Range
Set ws = ActiveSheet
Set tbl = ws.ListObjects("Table1")
Set neC = tbl.DataBodyRange(1, 3)
With neC.Validation
.Delete
.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, _
Formula1:="=Table2"
.ErrorMessage = "Month"
.ErrorMessage = "Please select January until December from the list"
End With
End Sub
代码运行流畅。但是,如果我希望数据验证应用于下一行直到最后一行,我应该在哪里添加/更改?
解决方案
您可以将验证列表应用于整个范围。只需扩大范围以满足您的需求。
以下代码非常基础,作为示例。对于示例,我选择从 A 到 C 列填充验证列表,从第 1 行到 C 列中的最后一个填充行。
Sub FillRangeWithValidationLists()
Dim ws As Worksheet, rng As Range
Dim lrow As Long
Set ws = ActiveSheet 'not recommended to use the active sheet
Set ws = ThisWorkbook.Sheet1 'this would be a better method
lrow = ws.Cells(ws.Rows.Count, "C").End(xlUp).Row 'last row in column C
Set rng = ws.Range("A1:C" & lrow) 'populate the rng variable with range you want
With rng.Validation
.Delete
.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, _
Formula1:="=Table2"
.ErrorMessage = "Please select January until December from the list"
End With
End Sub
推荐阅读
- azure - 带有标题和表格的单个电子邮件中的多个 HTML 表格
- java - Gradle 构建失败:无法为 org.gradle.api.plugins.internal.DefaultJavaApplication 类型的对象获取未知属性“RunTheProgram”
- visual-studio-code - VSCode Insider Jupyter 笔记本“逐行运行代码”
- oracle - 列外连接在子查询中 (ORA-01799)
- r - 改进由 R 的“曲线”函数生成的图形
- c# - 在 C# 上对 Mysql 值求和
- python - 在python中按行号删除行
- c - 使用 fork 和 pipe 来模仿 linux pipe 命令
- django - 如何正确处理休息反应?
- python - 没有外部字符或必要的缩进,但仍然出现未缩进的错误。Repl.it Python Discord Bot 特殊命令