【问题标题】:CDate Type dismatchCDate 类型不匹配
【发布时间】:2015-03-17 10:16:48
【问题描述】:

我是 VBA 新手。我想比较 timeNow 和 meetingEnds,我会离开复合单元格。但我收到类型不匹配错误。 :-(

Sub Modul1()
    timeNow = CDate(Time)

    Dim rowCount As Integer
    Dim cell As String

    For rowCount = 1 To ActiveSheet.UsedRange.Rows.Count Step 2
        cell = "C" & rowCount
        meetingEnds = CDate(['cell'])

        If timeNow > meetingEnds Then
            Rows(rowCount).Hidden = True
            Rows(rowCount + 1).Hidden = True
        End If
    Next rowCount
End Sub

有没有办法实现我想要的东西

meetingEnds = CDate(['cell'])

非常感谢。

【问题讨论】:

  • 您对meetingEnds 的定义/声明在哪里?为什么 Cell 声明为 String?
  • 因为我实际上不知道自己在做什么,所以我说我是 VBA 新手。 :(
  • 快速浏览一下,但在“单元格”周围使用双引号 - 单引号被视为注释的开头,因此您会立即出错。正如 PaulFrancis 所暗示的,将 Cell 声明为 Date。我也不会使用 Cell 作为变量,因为 Excel VBA 使用 ActiveCell ,所以稍后阅读您的代码会令人困惑。
  • C 列是否只有时间列表?
  • 查看我的循环示例link

标签: vba excel


【解决方案1】:

变化:

meetingEnds = CDate(['cell'])

meetingEnds = CDate(ActiveSheet.Range(cell))

原因是,您将 Cell 存储为字符串 - C1、C3、C5 等。任何此类引用都应包含在内或作为参数传递给 Range() 方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-16
    • 1970-01-01
    • 1970-01-01
    • 2018-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多