Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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 以美国显示的当前日期,而不是以前的预期格式_Excel_Vba_Date Formatting - Fatal编程技术网

Excel 以美国显示的当前日期,而不是以前的预期格式

Excel 以美国显示的当前日期,而不是以前的预期格式,excel,vba,date-formatting,Excel,Vba,Date Formatting,此Excel VBA代码不再工作 Private Sub cmdAjouter\u Click() 将ws设置为工作表 作为整数的Dim lr 设置ws=ThisWorkbook.Sheets(“Achats” lr=ws.Range(“A”和Rows.Count).End(xlUp).Row+1 ws.Range(“M”和lr.Value=格式(日期,“dd/mm/yyyy”) '[...] 端接头 今天我们是2020年2月11日,它应该返回日期为“11/02/2020”(法语格式),但它返

此Excel VBA代码不再工作

Private Sub cmdAjouter\u Click()
将ws设置为工作表
作为整数的Dim lr
设置ws=ThisWorkbook.Sheets(“Achats”
lr=ws.Range(“A”和Rows.Count).End(xlUp).Row+1
ws.Range(“M”和lr.Value=格式(日期,“dd/mm/yyyy”)
'[...]
端接头

今天我们是2020年2月11日,它应该返回日期为“11/02/2020”(法语格式),但它返回“02/11/2020”(美国格式).

最好将其存储为实际的
日期
,而不是
字符串
,只需使用
.NumberFormat
属性对其进行格式化,这样就不会根据您的区域设置再次转换

ws.Range("M" & lr).NumberFormat = "dd/mm/yyyy"
ws.Range("M" & lr).Value = Date

如果日期类似于2月13日,您的方法可能会很好地工作,因为这样就不会混淆13是一个月。

最好将其存储为实际的
日期,而不是
字符串,只需使用
.NumberFormat
属性对其进行格式化,这样做是不对的t根据您的区域设置,尝试再次转换

ws.Range("M" & lr).NumberFormat = "dd/mm/yyyy"
ws.Range("M" & lr).Value = Date

如果日期类似于2月13日,您的方式可能会很好,因为这样就不会混淆13是一个月。

日期格式将遵循windows的区域设置。可能您的机器区域被更改了?单元格本身被设置为日期格式(短日期)使用dd/mm/yyyy格式,可能是这样,但是
Format
函数将使用字符串设置单元格值,然后单元格将尝试转换为日期。尝试一下这一点来证明我的观点,只需将日期格式更改为与所需相反的格式,就可以得到所需的格式。
ws.Range(“M”&lr)。value=Format(date,“mm/dd/yyyy”)
@ArcherBird:我在Windows中的区域设置设置为法语,但我的Excel为英语(为了与我使用的其他程序兼容的一些问题)。日期格式在Windows和Excel中的设置方式(dd/mm/aaaa)相同!:(日期格式将遵循windows的任何区域设置。可能您的计算机区域已更改?单元格本身设置为日期格式(短日期)使用dd/mm/yyyy格式,可能是这样,但是
Format
函数将使用字符串设置单元格值,然后单元格将尝试转换为日期。尝试一下这一点来证明我的观点,只需将日期格式更改为与所需相反的格式,就可以得到所需的格式。
ws.Range(“M”&lr)。value=Format(date,“mm/dd/yyyy”)
@ArcherBird:我在Windows中的区域设置设置为法语,但我的Excel为英语(为了与我使用的其他程序兼容)。日期格式在Windows和Excel中的设置方式相同(dd/mm/aaaa)(