此程序旨在选择包含数组'名称'中包含的值的数据中的行。然后将选定的行剪切粘贴到不同的工作表中。
当我运行此代码时,我不断收到错误'编译错误:期望结束子'。我看了几个地方,似乎没什么用。
编辑:使用下面的函数将行数组更改为字符串数组。同样的错误。
编辑:删除'设置'从功能。相同的错误= /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
答案 0 :(得分:0)
您正在尝试Set
String
变量。
将此行:Set strArray(idx) = c.Text
更改为以下
strArray(idx) = c.Text
我通过点击VBA窗口菜单中的Debug > Compile VBA Project
找到了这个。
答案 1 :(得分:0)
好吧,我明白了!无论出于何种原因,将代码复制粘贴到新模块中都可以解决问题。谢谢大家帮忙解决这个问题!