Range类的VBA- AutoFilter方法为falied

时间:2016-11-14 19:09:46

标签: vba excel-vba excel

请注意我不是常规程序员,我对编码有足够的了解。我正在制作一个表格,其中ComboBox1给出Month,ComboBox2给出开始日期,Combobox3给出结束日期。

在下面的代码中,arraystr1应该具有格式的值 - 2,“10/4/2015”,2,“10/5/2015”,2,“10/6/2015”,2,“10 /二千〇一十五分之七“

现在我的arraystr1以相同的格式给出了值,但是当我运行程序时,它给出了我的错误 - “Range类的自动过滤方法被修复了”

Dim Z As Long
Dim cbstr1 As String
Dim cbstr2 As String
Dim cbstr3 As String
Dim cbstr4 As String
Dim datestr1 As String
Dim datestr2 As String
Dim arraystr1 As String
Dim arraystr2 As String
Dim arraystr3 As String
Dim partstr1 As String
Dim partstr2 As String
partstr1 = " 2,"
partstr2 = ","
arraystr3 = ""



Select Case (ComboBox1.Text)

Case "January"
cbstr2 = "01"
//............//
Case "December"
cbstr2 = "12"
End Select

cbstr3 = ComboBox2.Text
cbstr4 = ComboBox3.Text

datestr1 = cbstr2 & "/" & cbstr3 & "/2015"
datestr2 = cbstr2 & "/" & cbstr4 & "/2015"

If cbstr3 = cbstr4 Then
arraystr1 = partstr1 & Chr(34) & datestr1 & Chr(34)
Else
For Z = cbstr3 To cbstr4
If Z = cbstr4 Then
**arraystr1** = arraystr3 & partstr1 & Chr(34) & datestr2 & Chr(34)
Else
arraystr2 = cbstr2 & "/" & Z & "/2015"
arraystr3 = partstr1 & Chr(34) & arraystr2 & Chr(34) & partstr2
End If
Next Z
End If
  MsgBox (arraystr1)


Sheets("Sheet13").UsedRange.ClearContents

Sheets("Full data").Range("$A$1:$AB$45107").AutoFilter Field:=14, Operator:= _
    xlFilterValues, Criteria2:=Array(**arraystr1**)
Selection.SpecialCells(xlCellTypeVisible).Select
Sheets("Full data").Select
Range("F:F,L:L,N:N,Q:Q,S:S").Select
Selection.Copy
Sheets("Sheet13").Select
Sheets("Sheet13").Cells(1, 1).Select
Sheets("Sheet13").Paste
Sheets("Sheet13").Range("C:C,E:E").Select
Application.CutCopyMode = False
Selection.NumberFormat = "General"

0 个答案:

没有答案