我尝试了所有已知的方法,但无法设置单元格值及其日期。 我怀疑这是一个小问题,但我不知道在哪里。

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将返回正确的日期,但该值始终为空! 我尝试使用以下每种方法将其转换为字符串:

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

但是这些都不起作用。

#1楼 票数:1 已采纳

更改

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

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

Set用于设置对象的值,但是在设置单元格值时无需处理对象。 此外,定义从一个单元格到其自身的范围也是多余的。

  ask by Mohammad Awni Ali translate from so

未解决问题?本站智能推荐:

1回复

格式化日期列中的某些单元格出现在mm-dd-yyyy中,而其余单元格是dd-mm-yyyy

我有一个文件,我需要在其中检查当前周是否在每条记录的指定日期内。 名为 Effective 和 Expiry 日期的日期位于 E 和 F 列中。由于该文件是从某个数据库下载的,因此我对这些列进行了一定程度的清理。 (注意:“当前”周总是前一周) 这是我的代码: E 列和 F 列包含生效日期和到期
2回复

如何根据每个单元格的值和固定单元格的值有条件地格式化VBA中的列?

我需要为一列设置条件格式,其中基于从电子表格中的单元格派生的其他两个值来突出显示每个单元格。 值是日期。 这需要在VBA中完成(出于多种原因:该代码可与其他软件配合使用,并清除内容,将行组合在一起等)。 我在很多方法上都失败了,目前在以下方面失败了: 最终,当值在P1-1和P1 + 6
1回复

将日期格式化为单元格中的yyyy-mm-dd

在[excel-vba]中,我尝试从UserForm文本框格式化文本,将其格式化为yyyy-mm-dd并使用以下代码将其输入到单元格中: 单元格中的输出以yyyy / mm / dd的形式保持显示。 我在代码中尝试的任何其他格式似乎都有效。 我试过yyyy - mm - dd例如,它工作
1回复

根据日期设置单元格值ExcelVBA

当宏在任何给定日期运行时,它应检查当前日期并将其与一年中的不同季度进行比较,然后根据我们所在的季度更改某些单元格的值。 到目前为止,这是我要尝试附加到当前宏末尾的内容: 我在正确的道路上吗? 我敢肯定,有一种更优雅的编写方式,但这是我第一次编写自己的VBA代码。
2回复

基于日期和单元格是否为空白的条件填充

在我已创建为时间表轮换的电子表格上需要一些帮助。 基本上,我想在下面的日历中突出显示日期小于今天的单元格,该单元格是空白的,以标识人们何时未进入他们已经工作的班次。 例如,在日历上,我希望前三行没有提交任何内容以突出显示红色 这可能吗? 先谢谢您的帮助!
2回复

NumberFormat属性在需要返回格式化日期的函数中不生效

Excel VBA问题: 另一个人对NOW()函数有问题,因为他们希望它返回一个静态日期和时间,而不需要复制和粘贴该值。 我建议用户定义的函数以静态方式正确返回当前日期和时间。 问题是NumberFormat属性被忽略,弹出的结果是一个数字。 我已经尝试了其他几种格式化解决方案,但这
1回复

ExcelVBA格式的日期与在单元格中键入斜杠?

用户可以在B列中自由输入日期,如下所示: (英国格式的日期)B列 当我们要运行这些日期格式不一致的报表时,这非常令人沮丧。 我正在尝试创建一个将日期格式化的代码,但是它以如下斜杠输入: 这是我的代码: 仅当用户输入9位数格式时,这才似乎有效: 然后将其更改为 但是如果
1回复

在concat函数的末尾添加格式化日期

我目前正在寻找将DD / MM格式的更新日期添加到现有宏当前生成的文本字符串的末尾。 在上面写着“可用-PAM /建议编辑”的行上,我想添加今天的日期。 但是,我无法终生想出如何在没有调试器引发某种错误的情况下将其放入其中。 我可能只是想想而已,但是任何建议都将不胜感激