与Excel数据库的VBA计数器

我正在写一些macros的Excel工作表,将添加点数据库。 这些条目在纬度和经度方面需要是唯一的,所以我添加了几行代码,在用户试图input之后,会检查一个条目的纬度/经度。 它旨在检查数据库中的所有项的未决条目的纬度/经度。 如果它匹配,它将返回一个错误。 这里是代码:

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是用户input的lat / long,coorAbort是错误信息的部分。 一切工作正常,除了计数器进展到下一行循环似乎并没有工作。 它检查第二行的条目,然后退出循环并转到代码的下一部分。 我敢肯定,我有一些小事情搞砸了,我似乎无法挑选出来。 有人有主意吗?

我猜latlon是双重值? 如果是这样,你应该更换

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

通过

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

(对于lon也一样)。 不要直接testing双值直接相等。