vba预期结束子

时间:2014-06-11 13:51:45

标签: function loops excel-vba vba excel

此程序旨在选择包含数组'名称'中包含的值的数据中的行。然后将选定的行剪切粘贴到不同的工作表中。

当我运行此代码时,我不断收到错误'编译错误:期望结束子'。我看了几个地方,似乎没什么用。

编辑:使用下面的函数将行数组更改为字符串数组。同样的错误。

编辑:删除'设置'从功能。相同的错误= /

Function IsInArray(ToBeFound, arr As Variant) As Boolean
  IsInArray = (UBound(Filter(arr, ToBeFound)) > -1)
End Function


Function RangeToStringArray(myRange as range) as String() 'Credit to JA Daling
    ReDim strArray(myRange.Cells.Count - 1) As String
    Dim idx As Long
    Dim c As Range

    For Each c In myRange
        strArray(idx) = c.Text
        idx = idx + 1
    Next c
    RangeToStringArray = strArray
End Function

Sub Removedata()
    Dim i As Integer: i = 12
    Dim names: names = RangeToStringArray(Sheets("Pivot 1").Range("F18:F44"))
    While i < 554
        If IsInArray(Sheets("Raw data test").Cells(i, 16).Value, names) = True Then
            Sheets("Raw data test").Range(Sheets("Raw data test").Cells(1, 16), Sheets("Raw data test").Cells(26, 16)).Cut
            Sheets("Raw Data Out of Scope").Select
            ActiveSheet.Paste
        End If
        i = i + 1
    Wend
End Sub

2 个答案:

答案 0 :(得分:0)

您正在尝试Set String变量。

将此行:Set strArray(idx) = c.Text更改为以下

strArray(idx) = c.Text

我通过点击VBA窗口菜单中的Debug > Compile VBA Project找到了这个。

答案 1 :(得分:0)

好吧,我明白了!无论出于何种原因,将代码复制粘贴到新模块中都可以解决问题。谢谢大家帮忙解决这个问题!