我有一个3D数组字符串myArray(1到30,1到80,1到20)。在我的工作簿中,我有一个占用范围(1,1)到(30,20)的表。 我想使用 validation.add类型方法按以下顺序验证表格的单元格:
表格的第1列:
单元格(1, 1 )应包含值myArray(1,1, 1 )到myArray(1,80, 1 ) )
单元格(2, 1 )应包含值myArray(2,1, 1 )到myArray(2,80, 1 ) )
...
单元格(30, 1 )应包含值myArray(30,1, 1 )到myArray(30,80, 1 ) )
表格第2栏:
单元格(1, 2 )应包含值myArray(1,1, 2 )到myArray(1,80, 2 ) )
单元格(2, 2 )应包含值myArray(2,1, 2 )到myArray(2,80, 2 ) )
...
单元格(30, 2 )应包含值myArray(30,1, 2 )到myArray的值(1,80, 2 )
等等..
简而言之,表中的每个单元格都应包含从数组中提取的数据的删除列表(表的每一列都包含来自数组的不同页面的值)。
如果我的问题没有明确规定,我很抱歉,我是编程新手并且对VBA经验不足。
答案 0 :(得分:1)
以下简化解决方案演示了如何根据数组DropDown
值将验证Worksheet
列表添加到Cell
List1
“A1”:
Sub AddValidation()
Dim List1(1 To 5) As String
List1(1) = 1
List1(2) = 2
List1(3) = 3
List1(4) = 4
List1(5) = 5
With Range("A1").Validation
.Add Type:=xlValidateList, Formula1:=Join(List1, ",")
.InCellDropdown = True
End With
End Sub
要动态修改添加到工作表Cells
的验证列表,请参阅下面显示的解决方案:
Sub AddValidationDynamicList()
Dim List1(1 To 5) As String
List1(1) = 1
List1(2) = 2
List1(3) = 3
List1(4) = 4
List1(5) = 5
Dim str As String
str = Join(List1, ",")
For I = 1 To 5
With Range("A" & I).Validation
.Add Type:=xlValidateList, Formula1:=str
.InCellDropdown = True
End With
str = Mid(str, InStr(1, str, ",") + 1)
Next I
End Sub
您可以进一步扩展此解决方案,以满足您使用多维数组的要求。
希望这会有所帮助。