2003でオートフィルタ(3条件以上)マクロ
EXCEL2007で組んでいて、困っています!
2003では、オートフィルタ、3条件までなので、
下記の場合どうすればよいでしょうか・・・
(IF文内、カ行までしかいれてません。
しかも、2007これだと止まってしまうのですが・・・)
Private Sub 検索_Click()
Dim S_Name As String
a_arr = Array("ア", "イ", "ウ", "エ", "オ")
k_arr = Array("カ", "キ", "ク", "ケ", "コ")
s_arr = Array("サ", "シ", "ス", "セ", "ソ")
t_arr = Array("タ", "チ", "ツ", "テ", "ト")
n_arr = Array("ナ", "ニ", "ヌ", "ネ", "ノ")
h_arr = Array("ハ", "ヒ", "フ", "ヘ", "ホ")
m_arr = Array("マ", "ミ", "ム", "メ", "モ")
y_arr = Array("ヤ", "ユ", "ヨ")
r_arr = Array("ラ", "リ", "ル", "レ", "ロ")
w_arr = Array("ワ", "ヲ", "ン")
'シートCOPYのデータを消去
ThisWorkbook.Sheets("copy").Visible = True
Sheets("copy").Cells.Clear
'仕入先名検索の値をコピー
Worksheets("仕入先マスタ").Activate
If 仕入先名検索.Value = "ア" Then
Worksheets("仕入先マスタ").Range("$A$1:$I$65536").AutoFilter Field:=9, Criteria1:=a_arr, Operator:=xlFilterValues
With Worksheets("仕入先マスタ").Range("B1").CurrentRegion
Set r = Cells(65536, .Cells(.Cells.Count).Column).End(xlUp)
Range("A1", r).Select
ElseIf 仕入先名検索.Value = "カ" Then
Worksheets("仕入先マスタ").Range("$A$1:$I$65536").AutoFilter Field:=9, Criteria1:=k_arr, Operator:=xlFilterValues
With Worksheets("仕入先マスタ").Range("A1").CurrentRegion
Set r = Cells(65536, Cells(.Cells.Count).Column).End(xlUp)
Range("A1", r).Select
End With
End If
Selection.Copy
Worksheets("copy").Select
Range("A1").Select
Worksheets("copy").Paste
Application.CutCopyMode = False
Dim myDCount As Long, myDRange As String
myDCount = Worksheets("copy").Range("B1").CurrentRegion.Rows.Count 'データの最終行を取得
myDRange = "copy!B2:C" & myDCount
With 仕入先名
.ColumnCount = 2
.ColumnWidths = "100;20"
.RowSource = myDRange
End With
ThisWorkbook.Sheets("copy").Visible = False
Worksheets("商品マスタ").Activate
End Sub
お礼
ヤクルトは14連敗中… 阪神は前日に11対1で勝利勢いがあった。負けるはずない…が負けてヤクルト15連敗をまぬがれた。 確かに…笑うしかない… あああ…広島が独走は仕方ない。阪神が負けるとベイチケットが取れなくなる。頼む、タイガース勝って下さい。 25日からのベイスターズ戦1・1・引き分けでお願いします…夜行バスで甲子園まで行けないから。 早速ご回答頂きありがとうございました!