Ответ 1
Используйте свойство range NumberFormat
, чтобы форматировать формат диапазона следующим образом:
Sheet1.Range("A2", "A50000").NumberFormat = "yyyy-mm-dd"
У меня есть макрос, в котором я указываю дату (в мм/дд/гггг) в текстовом поле, и я хочу установить это значение для столбца А в формате yyyy-mm-dd. У меня есть следующий код:
Sheets("Sheet1").Range("A2", "A50000").Value = TextBox3.Value
Sheet1.Range("A2", "A50000") = Format(Date, "yyyy-mm-dd")
... и когда я запускаю макрос, дата все еще находится в формате mm/dd/yyyy.
Как я могу изменить это, чтобы он был в формате, который я хочу? Я пробовал много видов кода, исследуемых через Google, и ничто не установит формат так, как я этого хочу.
Любая помощь будет оценена...
EDIT: Полный код из комментария к 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"
Используйте свойство range 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
Он работает, когда вы используете обе строки:
Application.ActiveWorkbook.Worksheets("data").Range("C1", "C20000") = Format(Date, "yyyy-mm-dd")
Application.ActiveWorkbook.Worksheets("data").Range("C1", "C20000").NumberFormat = "yyyy-mm-dd"