21

テキストボックスに日付 (mm/dd/yyyy) を指定するマクロがあり、この値を列 A に yyyy-mm-dd 形式で設定したいと考えています。次のコードがあります。

Sheets("Sheet1").Range("A2", "A50000").Value = TextBox3.Value
Sheet1.Range("A2", "A50000") = Format(Date, "yyyy-mm-dd")

...マクロを実行すると、日付は mm/dd/yyyy 形式のままです。

これを希望の形式に変更するにはどうすればよいですか?? 私はグーグルで調査した多くの種類のコードを試してきましたが、フォーマットを希望どおりに設定するものはありません。

どんな助けでも大歓迎です...

編集:以下のOPのコメントからの完全なコード:

 Workbooks.Add
 Range("A1") = "Acctdate"
 Range("B1") = "Ledger"
 Range("C1") = "CY"
 Range("D1") = "BusinessUnit"
 Range("E1") = "OperatingUnit"
 Range("F1") = "LOB"
 Range("G1") = "Account"
 Range("H1") = "TreatyCode"
 Range("I1") = "Amount"
 Range("J1") = "TransactionCurrency"
 Range("K1") = "USDEquivalentAmount"
 Range("L1") = "KeyCol"
 Sheets("Sheet1").Range("A2", "A50000").Value = TextBox3.Value
 Sheet1.Range("A2", "A50000").NumberFormat = "yyyy-mm-dd"
4

3 に答える 3

40

範囲のNumberFormatプロパティを使用して、次のように範囲の形式を強制します。

Sheet1.Range("A2", "A50000").NumberFormat = "yyyy-mm-dd"
于 2012-09-07T19:39:30.993 に答える
11

追加されたブックではなく、コードを含むブックに書式を適用しています。シートと範囲の参照を完全に修飾する習慣を身につけたいと思うでしょう。以下のコードはそれを行い、Excel 2010 で動作します。

Sub test()
Dim wb As Excel.Workbook
Set wb = Workbooks.Add
With wb.Sheets(1)
    .Range("A1") = "Acctdate"
    .Range("B1") = "Ledger"
    .Range("C1") = "CY"
    .Range("D1") = "BusinessUnit"
    .Range("E1") = "OperatingUnit"
    .Range("F1") = "LOB"
    .Range("G1") = "Account"
    .Range("H1") = "TreatyCode"
    .Range("I1") = "Amount"
    .Range("J1") = "TransactionCurrency"
    .Range("K1") = "USDEquivalentAmount"
    .Range("L1") = "KeyCol"
    .Range("A2", "A50000").Value = Me.TextBox3.Value
    .Range("A2", "A50000").NumberFormat = "yyyy-mm-dd"
End With
End Sub
于 2012-09-07T22:25:53.507 に答える
2

両方の行を使用すると機能します。

Application.ActiveWorkbook.Worksheets("data").Range("C1", "C20000") = Format(Date, "yyyy-mm-dd")
Application.ActiveWorkbook.Worksheets("data").Range("C1", "C20000").NumberFormat = "yyyy-mm-dd"
于 2018-03-05T07:50:24.557 に答える