Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使excel VBA格式化日期_Excel_Date_Format - Fatal编程技术网

如何使excel VBA格式化日期

如何使excel VBA格式化日期,excel,date,format,Excel,Date,Format,我正在excel中制作一个GUI,允许用户只需使用GUI即可将信息输入电子表格。然而,我遇到了一个问题。我似乎无法将日期格式化。这是我的代码,它是GUI的代码: Dim AN As Worksheet Set AN = ThisWorkbook.Sheets("Sheet2") Dim n As Long n = AN.Range("A" & Application.Rows.Count).End(xlUp).Row 'AN.Range("A" & n + 1).Value

我正在excel中制作一个GUI,允许用户只需使用GUI即可将信息输入电子表格。然而,我遇到了一个问题。我似乎无法将日期格式化。这是我的代码,它是GUI的代码:

Dim AN As Worksheet
Set AN = ThisWorkbook.Sheets("Sheet2")
Dim n As Long

n = AN.Range("A" & Application.Rows.Count).End(xlUp).Row

'AN.Range("A" & n + 1).Value ='
AN.Range("B" & n + 1).Value = Me.yyyy.Value + "-" + Me.mm.Value + "-" + Me.dd.Value
'AN.Range("C" & n + 1).Value ='
AN.Range("D" & n + 1).Value = Me.N_O_B.Value
AN.Range("E" & n + 1).Value = Me.Address_street.Value
AN.Range("F" & n + 1).Value = Me.City_info.Value
AN.Range("G" & n + 1).Value = Me.State_info.Value
AN.Range("H" & n + 1).Value = Me.Zip_info.Value
AN.Range("I" & n + 1).Value = Me.Lname.Value
AN.Range("J" & n + 1).Value = Me.Fname.Value
AN.Range("K" & n + 1).Value = Me.Minitial.Value
AN.Range("L" & n + 1).Value = Me.Suffix.Value
AN.Range("P" & n + 1).Value = Me.Busi_zip.Value
AN.Range("X" & n + 1).Value = Me.Shrt_Descript.Value

我试图让日期出现在B栏。它出现在B栏,但不是我想象的那样。因此,在GUI中输入年份、月份和日期。然后我试图让代码获取信息并将其转换为YYYY/MM/DD格式,但它不起作用。我必须用这种格式。任何建议都会有帮助。

强制输入日期的原始值,然后格式化单元格

AN.Range("B" & n + 1).Value = dateserial(Me.yyyy.Value, Me.mm.Value, Me.dd.Value)
AN.Range("B" & n + 1).numberformat = "yyyy-mm-dd"

顺便说一句,正确的字符串连接运算符是一个与,例如&。虽然加号可能有效,但最好避免,尤其是在处理数字时。

是否有错误?您是否得到了错误的输出?假设我输入了今天的日期。因此,理论上系统应该输出2018/06/14,但输出的是数字43265,而不是日期。然后只需将单元格格式化为正确的格式,请参见下面@Jeeped的答案。第二行将日期格式化为正确的格式。这很有效!也谢谢你告诉我不要用加号。我不知道。