2017-10-27 14 views
1

日付の書式が間違っている「日付」のシート名に日付列があります。私は日付の書式を(col I)で修正する式を配置したシート名 "Raw Dates"に間違った日付をフィルタリングし、同じ列に日付を貼り付けようとしているときにデバッグしています。フィルタリングされた日付をコピーし、フォーマットしてフィルタリングされた列に貼り付けます

VBAコードが正しいかわかりませんが、以下はコードであり、参考のためにExcelファイルも添付しています。

これ以上の選択肢がある場合は、評価してください。

Sub DateFormat() 

Dt = Format(DateSerial(Year(Date), Month(Date), 1), "YYYY") 
lr = Cells(Rows.Count, 1).End(xlUp).Row 

    ActiveSheet.Range("A1:C" & lr).AutoFilter Field:=1, Operator:= _ 
     xlFilterValues, Criteria2:=Array(0, "12/9/" & Dt) 
    Range("A2:A" & lr).SpecialCells(xlCellTypeVisible).Copy Sheets("Raw Dates").Range("A2") 

Sheets("Raw Dates").Select 
Lrw = Cells(Rows.Count, 1).End(xlUp).Row 
Range("B2:I" & Lrw).FillDown 
Range("I2:I" & Lrw).Copy 

Sheets("Dates").Select 
Range("A2:A" & lr).SpecialCells(xlCellTypeVisible).PasteSpecial xlPasteValues 'stuck here 

End Sub 

よろしく、 ラジクマールH

+0

問題を具体的にどのようなものに縮小し、問題を再現するコードのみを表示してください。この場合、不正なフォーマットが原因です。試したことや環境に関するその他の詳細も参考になります。 – joeyfb

答えて

1

は、なぜあなたは、フィルタリングした後、列Aの可視セルに直接あなたの式を適用していませんか?

Dt = Format(DateSerial(Year(Date), Month(Date), 1), "YYYY") 
lr = Cells(Rows.Count, 1).End(xlUp).Row 

ActiveSheet.Range("A1:C" & lr).AutoFilter Field:=1, Operator:= _ 
    xlFilterValues, Criteria2:=Array(0, "12/9/" & Dt) 
For Each c In Sheets("Dates").Range("A2:A" & lr) 
     If c.Visible = True Then 
     'apply your formula to the cell value 
     End If 
    next c 
+0

はい、私にとってはうまくいきました。 –

関連する問題