我正在为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是带有错误消息的部分。一切正常,除了计数器进行循环到下一行似乎没有工作。它检查第二行条目,然后退出循环并继续执行代码的下一部分。我确定我有一些小混乱,我似乎无法挑选出来。有人有什么想法吗?
答案 0 :(得分:3)
我猜lat
和lon
是双值?如果是这样,您应该替换
If Worksheets("DBase").Cells(x, 3).Value = lat
通过
If Abs(Worksheets("DBase").Cells(x, 3).Value - lat)<1e-6
(并且lon
也这样做)。切勿直接测试双重值是否相等。