|    | 
     ▼kanabun さん:アドバイスありがとうございます。 
コードを埋め込んだところ、 
Dim ws2 As Worksheet 
Set ws2 = Worksheets(ShtName1) 
Worksheets のところが黒くなって配列がありません。 とでるのですが 
 
Dim Worksheets As String 
Dim ShtName As String, ShtName1 As String 
 
上記は記述していのですが、 
調べましたがよくわかりません。 
もう少し教えてください。 
 
>>何故か機能しないのですが、何か不備があればおしえてください。 
> 
>>With Range("A3") 
>>      Range("A3").AutoFilter Field:=1, Criteria1:=Worksheets(ShtName1).Range("E2").Value 
>>      Range("B3").AutoFilter Field:=2, Criteria1:=Worksheets(ShtName1).Range("H2").Value 
>>      .CurrentRegion.Copy Range("A41") 
>>      .AutoFilter 
>>    End With 
> 
>たとえば、2つ目のAutoFilter 
>>  Range("B3").AutoFilter Field:=2 
>は、B列からみて Field:=2 なので C列のことですよ。 
> 
>適当に直すと 
>Dim ws2 As Worksheet 
>Set ws2 = Worksheets(ShtName1) 
> With ActiveSheet.Range("A3").Currentregion 
>   .Worksheet.AutoFilterMode = False 
>   .AutoFilter Field:=1, Criteria1:=ws2.Range("E2").Value 
>   .AutoFilter Field:=2, Criteria1:=ws2.Range("H2").Value 
>   .Copy ActiveSheet.Range("A41") 
>   .AutoFilter 
>>End With 
> 
>なお、 
>.Range("A3").Currentregion 
>で、3行目が先頭見出し行にならないときは、別の方法でFilter範囲を 
>取得する必要があります。 
 
 | 
     
    
   |