无法使用数组变量进行数据验证(下拉列表)。
还有:
1.当debug.print行被执行时,即时窗口不显示MyArray
的值。
1.执行Range("A" & r).value = MyArray(r)
行没有任何React,excel表仍然是空的。
Sub Testing()
Dim ws As Worksheet
Dim MyArray() As String
Dim r As Integer
Dim WsCount As Integer
r = 1
WsCount = ThisWorkbook.Worksheets.Count
ReDim MyArray(1 To WsCount)
For Each ws In ThisWorkbook.Worksheets
MyArray(r) = ws.Name
r = r + 1
If r <= 12 Then
Debug.Print MyArray(r)
Range("A" & r).Value = MyArray(r)
End If
Next ws
ActiveSheet.Cells(1, 2).Validation.Add _
Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:=MyArray
End Sub
1条答案
按热度按时间erhoui1w1#
首先回答您的第二个问题:
实际上,代码确实会执行,但您所做的是:
1.填充索引为
r
的单元格。1.增加索引
r
(它现在指向数组中的空单元格)1.将空字符串写入范围
Formula1
需要逗号分隔的值(参见here),也就是字符串,而不是数组。您可以通过这种方式轻松地更正该行代码(我删除了我认为不需要的运算符)。