【发布时间】:2016-08-09 09:26:24
【问题描述】:
你能帮我写下下面的代码吗,我一直收到语法错误
宏的目标是在同一列下通过多行选择进行过滤。
我遇到语法错误的行是:
sColumn(n) = sColumn(n) & _
If(sColumn(n) vbNullString, ",", "") & oCell.Text
If sColumn(n) vbNullString Then
完整代码如下:
Sub combinationFilter()
Dim oRange As Range
Dim oArea As Range
Dim oCell As Range
Dim oLO As ListObject
Dim sColumn() As Variant
Dim n As Long
' Create Filter
Set oLO = Selection.ListObject
If Not oLO Is Nothing Then
ReDim sColumn(1 To oLO.ListColumns.Count)
Set oRange = Intersect(Selection, oLO.DataBodyRange)
For Each oArea In oRange.Areas
For Each oCell In oArea.Cells
n = oCell.Column - oLO.Range.Column + 1
sColumn(n) = sColumn(n) & _
IIf(sColumn(n) vbNullString, ",", "") & oCell.Text
Next oCell
Next oArea
' Apply Filter
For n = LBound(sColumn) To UBound(sColumn)
If sColumn(n) like vbNullString Then
oLO.Range.AutoFilter _
Field:=n, _
Criteria1:=Split(sColumn(n), ","), _
Operator:=xlFilterValues
End If
Next n
End If
End Sub
我还在以下几行中收到不匹配错误:
If sColumn(n) like vbNullString Then
oLO.Range.AutoFilter _
Field:=n, _
Criteria1:=Split(sColumn(n), ","), _
Operator:=xlFilterValues
提前谢谢你。
【问题讨论】:
-
您能否通过适当的语法缩进编辑以使您的代码可读?
-
@SamGilbert - 我认为
<>(不是=)被markdown吞没了。
标签: vba excel syntax-error