excel - 通过多个工作表在相同范围内进行数据验证,但列表不同
问题描述
我有几张都有相同模板的工作表。每个工作表都有一系列数据验证,其中“列表”对于每个工作表都是唯一的。
'LUNDI (JOUR)
With Sheets("LUNDI (JOUR)").Range("A8:H78").Validation 'The range here is always this
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="='Index NE PAS SUPPRIMER'!$C$2:$C$11" 'This is what changes, it increments by 3 with every sheet.
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = False
.ShowError = False
End With
'MARDI (JOUR)
With Sheets("MARDI (JOUR)").Range("A8:H78").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="='Index NE PAS SUPPRIMER'!$F$2:$F$11"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = False
.ShowError = False
End With
不是为每张纸复制和粘贴此代码,有没有办法遍历所有纸并只更改Formula1:=
部分?
解决方案
请尝试此代码:
Sub testSolveValidation()
Dim sh As Worksheet, wb As Workbook, strFormula As String, rngForm As Range
Set wb = ActiveWorkbook 'use there the workbook you need
Set rngForm = Range("$C$2:$C$11")
For Each sh In wb.Worksheets
solveValidation sh, rngForm.address
Set rngForm = rngForm.Offset(, 3)
Next
End Sub
Sub solveValidation(sh As Worksheet, strFormula As String)
With sh.Range("A8:H78").Validation 'The range here is always this
.Delete
.aDD Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="='Index NE PAS SUPPRIMER'!" & strFormula 'This is what changes, it increments by 3 with every sheet.
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.errorMessage = ""
.ShowInput = False
.ShowError = False
End With
推荐阅读
- java - TransactionalStateSupport 不保存变量
- jenkins - 捕获从 github webhook 中删除分支的事件
- slurm - SLURM 作业依赖于作业名称而不是作业 ID
- dask - Dask 可以并行化函数内的内容吗?
- cordova - 防止 Ionic CLI 在平台添加上运行资源生成
- wordpress - Woocommerce 购物车中最多 2 件商品
- css - 使用 CSS 将照片放入框架中
- c# - 根据文件内容执行或关闭程序
- android-studio - 如何安全地更改 Flutter Android Studio 项目中的“lib”目录名称?
- vba - 将图片插入隐藏的 Excel 文件