0
2つの別々のタブに2つのレポートを作成するVBAコードがあります。コードによって生成された最初のレポートは正常に動作し、望ましい出力を生成します。しかし、第2の報告書はそうではない。最初の報告は、このコードを使用する:Excel VBA範囲外の行を削除する
'Find the last row of the table
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
'Autofit all columns
Cells.Select
Cells.EntireColumn.AutoFit
'Filter then delete all rows that don't have a client
Selection.AutoFilter
ActiveSheet.Range("$A$1:$P" & lastRow).AutoFilter Field:=3, Criteria1:="="
ActiveSheet.Range("$A$2:$P" & lastRow).SpecialCells(xlCellTypeVisible).EntireRow.Delete
ActiveSheet.Range("$A$1:$P$256").AutoFilter Field:=3 'unfilter this column
(異なるタブに)第二の報告は、何らかの形で1行を削除する以下のコード、(列ヘッダー)を使用し、それによって下流の影響を引き起こします。
'Find the last row of the table
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
'Autofit all columns
Cells.Select
Cells.EntireColumn.AutoFit
'Filter then delete all rows that don't have a client
Selection.AutoFilter
ActiveSheet.Range("$A$1:$P" & lastRow).AutoFilter Field:=3, Criteria1:="="
ActiveSheet.Range("$A$2:$P" & lastRow).SpecialCells(xlCellTypeVisible).EntireRow.Delete
ActiveSheet.Range("$A$1:$P$256").AutoFilter Field:=3 'unfilter this column
これは同じコードですが、異なる動作を生成しています。これを引き起こす原因は何ですか?
本当に*行が削除されますか?それとも、それをフィルタリングしますか?また、おそらく '$ A $ 1'の使用ですか?それを '$ A $ 2'に変更すればどうなりますか? – BruceWayne
私には意味がありません - 2番目のタブの列ヘッダーが1行目にあることを確認してください。 – dwirony
カップルの質問があるので、私は順番に答えます。はい、それは行1を削除します。これを '$ A $ 2'に変更すると動作します:' ActiveSheet.Range( "$ A $ 1:$ P"&lastRow).AutoFilter Field:= 3、Criteria1:= "=" 'しかし、それは最初のコードがなぜ機能するのかを説明せず、2番目のコードは機能しません。最後に、はい、列ヘッダーが1行目にあることを確信しています。お手伝いいただきありがとうございます。 – battery514