用于将特定列的date格式设置为“yyyy-mm-dd”的VBA代码

我有一个macros,我在文本框中指定date(以mm / dd / yyyy),我想以yyyy-mm-dd格式为列A设置此值。 我有以下代码:

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

…当我运行macros时,date仍然是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" 

使用范围的NumberFormat属性强制范围的格式如下所示:

 Sheet1.Range("A2", "A50000").NumberFormat = "yyyy-mm-dd" 

您正在将格式应用于具有代码的工作簿,而不是添加的工作簿。 你会想养成完全符合表格和范围参考的习惯。 下面的代码可以在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