2016-12-03 105 views
0

我想清理数据库中的数据转储。我有一些字段是日期和情况是有些输入不正确,缺少日期等。例如:当一天不知道和写作12/??/1952年。我试图清除所有真正的字符串日期。这里是代码:在VBA中使用isdate()删除日期字段中的字符串文本

Dim r As Range, cell As Range, mynumber As Long 
Dim date_valid As Date 
Dim last_row As Integer 
Dim LastRow As Long 

Set r = Range("H2:H" & LastRow) 

mynumber = 1 
For Each cell In r 
    date_valid = cell.Value 
    If isDate(date_valid) Then 
     cell.Value = date_valid 
     mynumber = mynumber + 1 
     Debug.Print mynumber + 1 
    Else 
     cell.Value = " "//trying to save the nondate cell values as blank, putting in 12:00 am 
     mynumber = mynumber + 1 
     Debug.Print mynumber + 1 
    End If 
Next 

Debug.Print是帮助我找出哪些线路导致问题。类型不匹配

任何帮助,您可以提供极为赏识:当它遇到一个文本字段

运行时错误“13”

错误消息。

+0

你在哪一行得到这个错误?你想用这些日期做什么?删除它们?忽视 ? –

回答

0
Dim date_valid As Date 
date_valid = cell.Value 

类型不匹配时cell.value是不是一个有效日期。要修复它,请将date_valid声明为字符串。

Dim date_valid As String 
... 
date_valid = cell.Value 
If isDate(date_valid) Then...