首页 > 解决方案 > 使用 VBA 创建下拉列表时出现问题。下面提到的代码会创建下拉列表,但每次重新打开文件时都需要修复

问题描述

下面提到的代码为每个单元格生成下拉列表 0-100,最多 1500 行。尽管一旦重新打开此 excel 文件,它就会崩溃并切换到自动恢复状态,说明“已删除功能:来自 /xl/worksheets/sheet1.xml 部分的数据验证”。这导致首先保存恢复的文件,然后继续工作。请帮助我找到并解决问题。

Private Sub sSlot_Number()
Dim i, j As Integer
Dim Astr As String
i = 0
j = 0

For j = 0 To 100
   Astr = Astr & "," & j          'To contain 0 to 100 numbers in Astr for creating dropdown list
Next j

Do While i < 1499
With ThisWorkbook.Worksheets(1).Cells(2 + i, 2).Validation
 .Delete
 .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
 Operator:=xlBetween, Formula1:=Astr        'Drop down list with value 0 to 100 for cells upto Row 1500
 .IgnoreBlank = True
 .InCellDropdown = True
 .InputTitle = ""
 .ErrorTitle = ""
 .InputMessage = ""
 .ErrorMessage = ""
 .ShowInput = True
 .ShowError = True
End With
i = i + 1
Loop
End Sub

标签: excelvbavalidationdropdown

解决方案


的长度限制为Formula1256 个字符:您有 294 个字符Astr。您可以在不使用列表的情况下设置等效验证,或者您可以将验证指向(隐藏)工作表上的列表范围。


推荐阅读