をスローし、私は私が間にフィルタしようとしています日時列を持っているにかかわらず、私はそれをフォーマットしようとどのように私はエクセルVBA xlDateBetweenは、アプリケーション定義またはオブジェクト定義のエラー
実行時エラーを取得していない「1004」
Option Explicit Sub filterDate() ''' Manually filters a datetime range ''' Dim hourly_picks As Worksheet Dim pickCount As PivotTable Dim picked_at As PivotField Dim beginDate As Date Dim endDate As Date ' set variables Set hourly_picks = ThisWorkbook.Sheets("Hourly Pick Count by Employee") Set pickCount = hourly_picks.PivotTables("PivotTable2") Set picked_at = pickCount.PivotFields("picked_at") beginDate = Format(hourly_picks.Range("L2").Value, "M/d/yyyy h:mm:ss") endDate = Format(hourly_picks.Range("S2").Value, "M/d/yyyy h:mm:ss") ' clear all filters then filter by picked_at range pickCount.ClearAllFilters picked_at.PivotFilters.Add Type:=xlDateBetween, Value1:=beginDate, Value2:=endDate End Sub
マイ
beginDate
とendDate
から入力された:アプリケーション定義またはオブジェクト定義のエラーここ
は私のコードですユーザーは現在12/6/2017 23:01:00
と12/7/2017 7:30:00
の値を持っています。 MsgBox
またはDebug.Print
を使用して変数をチェックすると、12/6/2017 11:01:00 PM
と12/7/2017 7:30:00 AM
となります。データは、PostgreSQLデータベースから、mm/dd/yyyy h:mm:ss
という形式で取得されます。 filter列をpicked_atからday_picked
(mm/dd/yyyyのみを示す日付)に変更すると問題はありません。
beginDate/endDateのフォーマットに問題がありますか? picked_atの形式をどのように優れたものにしているかを正確にどのように伝えることができますか?
'Debug.Print TypeName(hourly_picks.Range(" L2 ")。Value)'を実行すると、 'String'または' Date'を取得しますか? –
1004エラーはどの行にありますか? – Vityata
xlDateBetween行でエラーが発生します。以下のコードは、以下を出力します:String、Date; Debug.Print(TypeName(hourly_picks.Range( "L2")。Value)) Debug.Print(TypeName(beginDate)) – egood