2016-04-12 25 views
-1

これは私の日付の値ですMar 30 2016 4:46:34:256PM時間を削除してこのようにしたいMar 30 2016VBA - 範囲セル内の文字列を削除する方法

私はyyyy-mm-dd etcmm-dd-yyyymm-dd-yyyyよう形式で、この場合は値をフォーマットするさまざまな方法を試してみました。それは働いているが、これを試してみるとMar 30 2016 4:46:34:256PMは価値がない。誰かがなぜ私に教えてくれますか?

は、私はすべての形式をテストするための簡単なコードを試してみましたが、それはこの値 Mar 30 2016 4:46:34:256PMで作業していないので、私は 4:46:34:256PMを削除することを決定し、それは私があなたの例から株式....

Sub formateDate() 
Dim lastrow As Long 

lastrow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row 

For i = 2 To lastrow 

Cells(i, 2).NumberFormat = ("dd-mm-yyyy") 
Next i 
End Sub 
+0

私は分かりません。 'Mar 30 2016 4:46:34:256PM'は実際の日付か文字列ですか? Excelがテキストを日付として認識しない場合は、書式を変更することはできません。実際の日付をセルに入力してからフォーマットしてください。また、テキストと日付関数を使用して日付を抽出する必要があります。 – vacip

+1

@vacipが示唆するように 'Cells(i、2).Value2'を確認する。数値の場合、日付は日付として格納され、 '.NumberFormat'を使用してフォーマットできます。そうでない場合、 '.Value2'の文字列を取得すると、最初に文字列(悪夢)から日付を抽出する必要があります。 – Ralph

+0

@vacipその実際の日付ですが、私は* NumberFormat * – 7A65726F

答えて

2

を得た方法ですあなたそれは常に、その後

Cells(i, 2) = Left(Cells(i, 2), InStr(Cells(i, 2), " ") - 1) 

をたどり、のようなので、あなたが行くことができなければなりません年間数

後、2つの連続するスペースを持っているように見えますIsDate WorksheetFunctionは結果の値で呼び出された場合はTrueを返します

+0

あなたの答えをありがとう私は家に帰るとこれを試してみようとしています – 7A65726F

+0

VBAはこの形式の 'hh:mm:ss:SSSa'を持っていますか? – 7A65726F

+0

あなたのニーズは何ですか?文字列を解析して連結することによって、任意の形式の文字列を構築できます。しかし、Excelにそれを時間形式として認識させたい場合は、数値形式メニューでそれを探す必要があります。それ以外にも、私の解決策があなたの質問に答えたなら、それを合格とマークしてください。ありがとうございました – user3598756

関連する問題