VBA使用数组值作为单元格验证值

夏季开发人员

我现在在做什么

  1. 使用来自多个工作表的特定列(项目列),用唯一数据填充数组
  2. 使用上面的数组值在另一个工作表中填充一个下拉列表

但是,我在尝试设置的验证步骤上出现错误 Formula1:=arrItems()

这是我的代码:

    Dim ws As Worksheet
    Dim tmpItems As String
    Dim arrItems() As String
    Dim tmpDates As String
    Dim arrDates() As String
    Dim ItemColumn As Range
    Const ItemHeaderCell As String = "Item"
    Dim EmptyRange As Range

    For Each ws In ActiveWorkbook.Worksheets
      If ws.Name <> "Raw Data" Then
        ws.ListObjects.Add(xlSrcRange, ws.UsedRange, , xlYes).Name = ws.Name
        ws.ListObjects(ws.Name).TableStyle = "TableStyleMedium9"
        tmpDates = tmpDates & ws.Name & "|"
        Set ItemColumn = ws.UsedRange.Find(ItemHeaderCell, , xlValues, xlWhole)

        For Each EmptyRange In Intersect(ItemColumn.EntireColumn, ws.UsedRange).Cells
        'skip the header and empty cells
          If Not IsEmpty(EmptyRange.Value) And EmptyRange.Address <> ItemColumn.Address 
        And (InStr(tmpItems, EmptyRange) = 0) Then
            tmpItems = tmpItems & EmptyRange.Value & "|"
          End If
        Next EmptyRange
      End If
    Next ws

    If Len(tmpItems) > 0 Then 
       tmpItems = Left(tmpItems, Len(tmpItems) - 1)
       arrItems = Split(tmpItems, "|")

       If Len(tmpDates) > 0 Then 
         tmpDates = Left(tmpDates, Len(tmpDates) - 1)
         arrDates = Split(tmpDates, "|")

         Dim worksheet2 As Worksheet
         Set worksheet2 = ActiveWorkbook.Sheets.Add(Before:=ActiveWorkbook.Sheets(1))
         worksheet2.Name = "Main"

         With worksheet2.Range("A1").Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=arrItems()
         End With

如何纠正此错误?

道格·格兰西(Doug Glancy)

Validation.Formula1是一个字符串,而不是一个数组。如果我正确阅读了您的代码,则可以将填充的行更改tmpItems为:

tmpItems = tmpItems & EmptyRange.Value & ","

之后,请删除最后一个逗号,然后将其tmpItems用于您的Formula1

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用数组公式将图标作为单元格值

来自分类Dev

使用XLRD验证单元格值

来自分类Dev

Excel VBA - 使用单元格中的值作为地址来定位另一个单元格

来自分类Dev

EXCEL-VBA。获取单元格值作为键值对

来自分类Dev

如何在excel VBA中验证单元格值

来自分类Dev

如何在VBA中使用单元格值作为命名范围?

来自分类Dev

EXCEL VBA 将单元格值与数组进行比较

来自分类Dev

在熊猫中使用列作为单元格值

来自分类Dev

使用特定工作表名称的数组更新单元格值VBA

来自分类Dev

使用单元格值作为参考过滤单元格

来自分类Dev

Excel VBA-For循环。使用值查找单元格

来自分类Dev

使用VLOOKUP VBA删除单元格值

来自分类Dev

需要使用VBA转换Excel单元格值

来自分类Dev

如何使用vba复制excell单元格值

来自分类Dev

VBA:使用下拉列表检测单元格中的值

来自分类Dev

使用VBA在Excel中累积单元格值

来自分类Dev

使用 VBA 选择单元格的整个值

来自分类Dev

我如何使用Matlab中的container.Map将单元格数组作为键并将整数向量作为值

来自分类Dev

使用Excel VBA显示相邻单元格中单元格的值变化

来自分类Dev

使用Word VBA根据单元格值为表格中的单元格着色

来自分类Dev

VBA 使用单元格值而不是单元格名称

来自分类Dev

Excel VBA重现单元格的值

来自分类Dev

比较VBA中单元格的值

来自分类Dev

VBA Excel单元格值是“ not” NULL

来自分类Dev

比较VBA中单元格的值

来自分类Dev

VBA Excel单元格值是“ not” NULL

来自分类Dev

用VBA设置单元格值

来自分类Dev

VBA - 无法设置单元格值

来自分类Dev

在Excel VBA中使用单元格值(文本)作为公式的一部分

Related 相关文章

热门标签

归档