1

私は VBA を初めて使用し、「Excel で 2 つの特定の日付をフィルター処理する方法」に関するさまざまな検索からこのマクロをまとめました。2 つのセルから日付を読み取り、表示されるデータをそれらの日付の間のデータに制限しようとしています。ワークブックへの入力データは、時間の経過とともに拡大する SQL テーブルであるため、範囲の左境界が値を含む最後の行になるようにする必要があります。AutoFilter パーツの各行で、:= 記号が強調表示された「Expected Named Parameter」エラーが返されます。私が読んだフォーラムから、これはVBA予約語を変数名として使用しているためですが、この場合はそうではないと思います。
これが私のコードです:

Public Sub MyFilter()
.AutoFilterMode = False
Dim datRight, datLeft As Date
Dim lastRow As Long
datLeft = Range("J1").Value
datRight = Range("J2").Value
lastRow = Range("A:A").Find("*", Range("A2"), searchdirection:=xlPrevious).Row
ActiveSheet.Range("F2:F" & lastRow).AutoFilter Field:=7,
Criteria1:=">=" & datLeft, _
Operator:= xlAnd,
Criteria2:="<=" & datRight, VisibleDropDown:=True
End Sub
4

1 に答える 1

0
  1. 最初に表示されるエラーは、.AutoFilterMode = FalseAutofilter の前の DOT に注意してください。関連するシートでそれを修飾する必要があります。例えば、ThisWorkbook.Sheets("Sheet1").AutoFilterMode = False

  2. を使用して最後の行を見つけようとしている場合は、常にこの*投稿に記載されている方法を使用してください。そうしないと、ワークシートが空白の場合にエラーが発生します。

  3. あなたの宣言Dim datRight, datLeft As Date。VBA では、最後の変数のみが として宣言されDate、最初の変数は として宣言されVariantます。Dim datRight As Date, datLeft As Dateまた、値J1J2値が日付値でない場合は、エラーが発生するように変更します。

今あなたの問題に。継続文字が欠落しているため、そのエラーが発生しています_

これを試して

ActiveSheet.Range("F2:F" & lastRow).AutoFilter Field:=7, _
Criteria1:=">=" & datLeft, _
Operator:=xlAnd, _
Criteria2:="<=" & datRight, VisibleDropDown:=True
于 2013-11-06T16:26:26.223 に答える