【发布时间】:2014-08-15 12:50:46
【问题描述】:
我正在尝试使用此 cod 来检查到期日期。我之前使用代码打开不同的文件并复制单元格,如下所示。请任何人帮助我为什么有运行时错误 13 类型不匹配。有任何想法吗 ?? 我试图把 If empty cell exit sub 但仍然一样:(
Set wkbData = Workbooks.Open(Filename, , True)
wkbData.Sheets("IBL").Range("H1:I100").Cells.Copy
wkbSource.Sheets("Expiry Date").Range("A1").PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
wkbData.Close
Dim LRow As Integer
Dim LResponse As Integer
Dim LName As String
Dim LDiff As Integer
Dim LDays As Integer
LRow = 2
LDays = 31
While LRow < 200
If Len(Sheets("Expiry Date").Range("A" & LRow).Value) > 0 Then
If Len(Sheets("Expiry Date").Range("A" & LRow).Value) = "" Then Exit Sub
LDiff = DateDiff("d", Date, Sheets("Expiry Date").Range("A" & LRow).Value)
If (LDiff > 0) And (LDiff <= LDays) Then
LName = Sheets("Expiry Date").Range("B" & LRow).Value
LResponse = MsgBox("The Juice " & LName & " will expire in " & LDiff & " days.", vbCritical, "Warning")
End If
End If
LRow = LRow + 1
Worksheets(1).Activate
Wend
End Sub
【问题讨论】:
-
可能是您的
Len(...=""线路。 Len() 函数返回一个 int 并且您将它与字符串进行比较。也可能是您的“到期日期”表中的错误日期。这可能会导致 DateDiff 函数失败。
标签: excel vba date type-mismatch