带有excel数据库的VBA计数器

时间:2011-10-17 20:43:00

标签: excel vba

我正在为excel工作表编写一些宏,这些工作表将向数据库添加点。这些条目的纬度和经度值必须是唯一的,所以我添加了几行代码,用户在尝试输入条目后检查条目的纬度/经度。它旨在检查数据库中所有条目的挂起条目的纬度/经度。如果它匹配一个,它将返回一个错误。这是代码:

x = 2
Do Until (Worksheets("DBase").Cells(x, 3).Value = "")
     If Worksheets("DBase").Cells(x, 3).Value = lat And Worksheets("DBase").Cells(x,
4).Value = lon Then
          GoTo coorAbort
     Else
          x = x + 1
     End If
Loop

x是行计数器,lat和lon是用户输入的lat / long,coorAbort是带有错误消息的部分。一切正常,除了计数器进行循环到下一行似乎没有工作。它检查第二行条目,然后退出循环并继续执行代码的下一部分。我确定我有一些小混乱,我似乎无法挑选出来。有人有什么想法吗?

1 个答案:

答案 0 :(得分:3)

我猜latlon是双值?如果是这样,您应该替换

If Worksheets("DBase").Cells(x, 3).Value = lat

通过

If Abs(Worksheets("DBase").Cells(x, 3).Value - lat)<1e-6

(并且lon也这样做)。切勿直接测试双重值是否相等。