首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Excel VBA集合到验证列表

Excel VBA集合到验证列表
EN

Stack Overflow用户
提问于 2016-08-01 01:16:38
回答 1查看 1.2K关注 0票数 3

我是VBA的新手,但我对Java和Python有丰富的经验。我的任务是在excel电子表格上组织附近一所学校的评分标准,我想让老师们只需点击一个按钮就可以重新组织电子表格,所以我决定使用VBA。

这就是我到目前为止对我的代码所做的(它是草率的,但一旦我让它运行良好,我会把它清理干净):

代码语言:javascript
复制
Private Sub Workbook_Open()

' Initialize Variables
Dim i%, j%
Dim vTemp$, StdList$
Dim Stds As Collection


Set Stds = New Collection

' Compute the index of the last Standard on Test worksheet
lastStd = Sheet3.Range("B" & Rows.Count).End(xlUp).Row

' Remove Duplicates from the Standards and remove commas
On Error Resume Next
For i = 2 To lastStd
    Stds.Add (Sheet3.Cells(i, 2)), Chr(34) & (Sheet3.Cells(i, 2)) & Chr(34)
Next i
On Error GoTo 0

For i = 1 To Stds.Count
    Stds.Item(i) = Replace(Stds.Item(i), ",", Chr(130))
Next i


' Sort the Standards Alphabetically (using Bubble Sort)
For i = 1 To Stds.Count - 1
    For j = i + 1 To Stds.Count
        If Stds(i) > Stds(j) Then
            vTemp = Stds(j)
            Stds.Remove (j)
            Stds.Add vTemp, vTemp, i
        End If
    Next j
Next i


' Reinitialize Cell Data
Sheet8.Range("A1:J100").Clear

For i = 1 To Stds.Count
    Sheet8.Cells(i, 1).Value = Stds.Item(i)
Next i


' Output the Standards to the Excel Spreadsheet
For i = 1 To Stds.Count
    StdList = StdList & Stds.Item(i) & ","
Next i
With ThisWorkbook.Sheets("Sheet1").Range("F3").Validation
    .Delete
    .Add Type:=xlValidateList, _
    AlertStyle:=xlValidateAlertStop, _
    Formula1:=StdList
End With
End Sub

当我打开电子表格时,代码执行,但执行时得到“运行时错误1004‘应用程序定义的错误或对象定义的错误’”。我们的目标是让代码搜索评分标准,枚举集合,删除重复项,按字母顺序对标准进行排序,并将逗号替换为看起来像逗号的字符,以便我可以将集合转换为列表,并将该列表放入电子表格中某处的下拉列表中。当我选择debug选项时,这三行将突出显示:

代码语言:javascript
复制
    .Add Type:=xlValidateList, _
    AlertStyle:=xlValidateAlertStop, _
    Formula1:=StdList

我的猜测是,我要么在语法上苦苦挣扎,要么在其中的某个地方存在我看不到的类型不匹配;这两种情况都很可能发生。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-01 01:36:49

您可以对您的参数运行debug.print -这会指出xlValidateAlertStop是空的

它实际上应该是xlValidAlertStop

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38686523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档