2013-05-09 81 views
1

我有一个文档,我想检查一些列以查看它们是否格式正确。对于不正确的值,我希望有一个msgbox来显示每个实例的值和位置(每个位于单独一行)。数据有效性检查

只是为了防止出现大量错误,我希望为每列创建一个消息框。下面我有一个部分代码,但cl.address2/value2需要更改,也可能是vbanextline,但基本上就是这样。谢谢!

Sub datachecks 
    Dim cl as range 
    For each cl in range("A:A") 
     If cl.format = "dd/mm/yyyy" then 
      Msgbox(cl.address & cl.value & vbanextline & cl.address2 & cl.value) 

回答

1

我会让每个显式指向单元格。 要跟踪找到的单元格,请使用本地的字符串变量,在其中添加找到的任何行以及回车或换行符(= Chr(13))。 提出了一些小的修正在这里和那里为好,这应该这样做:

Sub datachecks() 
    Dim cl As Range 
    Dim foundCells As String 

    For Each cl In Range("A:A").Cells 
     If cl.NumberFormat = "dd/mm/yyyy" Then 
      foundCells = foundCells & cl.Address & " " & cl.Value & Chr(13) 
     End If 
    Next cl 
    MsgBox (foundCells) 
End Sub 
+0

谢谢...只是为了学习的目的是什么了CHR(13)参见/什么会改变多少呢? – 2013-05-09 22:10:20

+0

正如我在我的介绍文字中提到的换行符是Chr(13),Chr()是一个字符函数,数字参数将决定哪个字符将被“打印”,这对于特殊字符如回车,行饲料,双引号... – 2013-05-09 22:13:22