我有一个宏,我在文本框中指定日期(以mm/dd/yyyy为单位),我想以yyyy-mm-dd格式为A列设置此值.我有以下代码:
Sheets("Sheet1").Range("A2", "A50000").Value = TextBox3.Value
Sheet1.Range("A2", "A50000") = Format(Date, "yyyy-mm-dd")
Run Code Online (Sandbox Code Playgroud)
...当我运行宏时,日期仍为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"
Run Code Online (Sandbox Code Playgroud)
Lit*_*les 34
使用range的NumberFormat属性来强制范围的格式,如下所示:
Sheet1.Range("A2", "A50000").NumberFormat = "yyyy-mm-dd"
Run Code Online (Sandbox Code Playgroud)
Dou*_*ncy 10
您正在将格式应用于具有代码的工作簿,而不是添加的工作簿.你需要养成完全限定工作表和范围参考的习惯.下面的代码执行此操作,并在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
Run Code Online (Sandbox Code Playgroud)