2017-03-24 5 views
0

として読まれている:THYSSセルのフォーマットは、一般的な

は、それから私は、時間と、そのセルの書式を設定し、使用してフォーマット名をお読みください。

workSheet.Cellsをセルで

THYSSが表示され、[ROWNUMBER、start.Column]は

それは文字列を返す ":ミリメートルのSS \のAM/PM [$ -F400] h" を.Style.Numberformat.Format 。

Fxバーに「THYSS」と表示されます。

すべてが妥当で予想通りです。私のようにセルの内容を持っている場合は

しかし、:1.7063

それから私は、時間と、そのセルの書式を設定し、使用してフォーマット名をお読みください。

workSheet.Cells [ROWNUMBER、start.Column] .Style.Numberformat.Format

それは「一般的な」

とセル午後04時57分04秒には、表示される文字列を返します。 Fxバーに01/01/1900 16:57:04が表示されます。

なぜ一般的なものを返すのですか?!?!?!?!?!?!?

私は、スプレッドシートにどのセルにもフォーマットがないことを確認しようとしています。フォーマットしていれば、ユーザーに修正を知らせる必要があります。

P.S.私は今、一般的にフォーマットを設定ところで場合は、セルの内容は今魔法のこのような1.7062962962963

+0

私のコメントを説明できるようになったことが数までの一般的なように、それは、番号の形式に設定されています書式設定が適用されていると思うhttps://support.office.com/en-gb/article/Available-number-formats-0afe8f52-97db-41f1-b972-4b46e9f1e8d2 –

+0

@ Nathan_Savあなたが言っていることがここに当てはまる場合は、 1.7063はNumberformat.FormatはTime、Text(Timeフォーマットは)はNumberformat.FormatがGeneral ...と言っていました。いいえ、Timeと設定されています...セルの内容がテキストの場合はNumberformat .Formatは言う[$ -F400] h:mm:ss \ AM/PMただし、セルの内容が1.7063の小数である場合、Numberformat.FormatはGeneral ... erm wtf?!?!?! –

+0

多分Excelを調整していると思います。あなたが時間形式でテストするのであれば、以下のように '? typename(activecell.value)、typename(activecell.text) 'セルの正午12:00:00と同じ' String String'を取得すると、あなたは 'Double String'を偶発的に取得し、どちらも日付型ではありません。だから私は数値の形式は、テキスト値によって決定され、それに応じて、表現することはできませんが調整されると言うでしょう。 '99:99:00'は書式規約(ish)に準拠しますが、テキストエントリとして返されます。 –

答えて

0

何かが

Public Function FormatRange(r As Excel.Range) As Variant 

Dim x As Variant 

On Error GoTo eHandle: 

    If r.NumberFormat = "m/d/yyyy" Then 
     x = CDate(r.Text) 
    Else 

    End If 

Exit Function 

eHandle: 

    FormatRange = CStr(r.Value) 
    r.Value = FormatRange 
    r.NumberFormat = "General" 


End Function 
+0

しかし、「[$ -F400] h:mm:ss \ AM/PM」ではなく、「Time」という形式のTHYSSのセル内容がエラーを引き起こし、Generalとして報告されるとは思いませんか? ...逆に、1.7063は時間に変換されており、(一見)エラーを引き起こすことはありませんが、実際にはTimeのフォーマットが適用されているときにGeneralとして報告されています。 –

関連する問題