2017-09-11 9 views
0

Iは、コードの行を持っている:vefデータを持つ配列であるのExcel VBA - 日付形式としてリサイズ

.Range("D2").Resize(UBound(vef, 1), 1) = vef 

。この行を編集してvefを日付形式で貼り付けることはできますかdd.mm.yyyy hh:mm:ss

+0

あなたは配列を持っているので、範囲を簡単に計算できるはずです。範囲を設定する前に範囲フォーマットを設定するだけではできませんか? – Zac

答えて

1

これで十分です。同じ範囲で作業し、セルの数値形式を変更するだけです。注:貼り付けられている値は変更されていません(配列の値は日付である必要があります)。 Excelは表示される内容が変更されるように書式を適用しますが、基礎となる情報を失うことはありません。

配列に文字列が含まれている場合は、あらかじめ日付に変換することを検討することをお勧めします。 Excelはこれを暗黙的に行うことができます(たとえば、元の値が日付であるにもかかわらず自動的にフォーマットされます)が、明示的な変換が優先されます。あなたのコードの場合

は、この使用:

With .Range("D2").Resize(UBound(vef, 1), 1) 
    .Value = vef 
    .Numberformat = "dd.mm.yyyy hh:mm:ss" 
End With 

を最後に、私はちょうどあなたの配列が1基づいている場合、あなたのUbound(vef, 1)にのみ動作することを指摘します。

あなたのケースではそう
Length = (Ubound(Array, DimensionNumber) - LBound(Array, DimensionNumber)) + 1 

Length = (Ubound(vef, 1) - LBound(vef, 1)) + 1 
それが0基づいている場合は、あなたのサイズ変更された範囲では、配列の次元の長さを見つけるために使用できる式は1でオフになります

幸運を!

+0

はい、それです。ありがとう。私は両方のことを考慮に入れます – user155754

+0

問題ありません。他に質問がある場合はお知らせください。 –