用函数返回的格式化date填充单元格值

我已经尝试了所有我知道的方法,但是我还没有能够用它的date来设置单元格的值。 我怀疑有一个小问题,但我不知道在哪里。

Function getDates(strDateString) As Date Dim x As Variant x = Split(strDateString, "/") If UBound(x) = 2 Then strday = x(2) strMonth = x(1) strYear = x(0) Else strYear = Mid(strDateString, 1, 4) strMonth = Mid(strDateString, 6, 2) strday = Mid(strDateString, 8, 2) End If getDates = DateSerial(strYear, strMonth, strday) End Function For k = 11 To 12 strdates = getDates(Cells(2, k).Value) Set Worksheets(strNewSheetName).Range(Cells(1, k), Cells(1, k)).Value = CStr(strdates) MsgBox (strdates) Next k 

MsgBox将返回正确的date,但值始终为空! 我试图将其转换为每个这些方法的string:

 cells(r,c).value CSTR(strDates) cdate() 

但没有一个工作。

更改

 Set Worksheets(strNewSheetName).Range(Cells(1, k), Cells(1, k)).Value = CStr(strdates) 

 Worksheets(strNewSheetName).Cells(1, k).Value = CStr(strdates) 

Set用于设置对象的值,但在设置单元格值时不处理对象。 而且,定义从一个单元格到它自己的范围也是多余的。