注册 登录
编程论坛 VFP论坛

请教:查找EXCEL中的指定值并返回地址

zhousr 发布于 2023-06-03 13:45, 734 次点击
dz=oExcel.ActiveSheet.columns("B:B").Find("江苏大学",,,1).address,能够返回正确的地址。

wcbfd=VAL(STRCONV(wch,2))/30000
dz=oExcel.ActiveSheet.columns("H:H").Find(&wcbfd,,,2).address
不能返回数值wcbfd所在的单元格地址。
请问:该如何修改?谢谢!
7 回复
#2
吹水佬2023-06-03 15:56
可能是查找未发现匹配项
oRange = oExcel.ActiveSheet.columns("H:H").find(wcbfd,,,2)
IF !ISNULL(oRange)
  ? oRange.address
ELSE
  ? "未发现匹配项"
ENDIF
#3
zhousr2023-06-03 16:50
谢吹版!
wcbfd和EXCEL中的数值有时是不完全相等的,比如小数位数不同,所以不能用精确匹配。DBF中用seek可找到最接近的值,在EXCEL中有没相似的办法呢?上面 的语句,用相等的数据是可以找到的。find()的参数里,有没有一个可以找到近似值的呢?
或者,有没其他方法可以返回这个行号的?
#4
吹水佬2023-06-03 20:03
回复 3楼 zhousr
find没有查找最近似值选项,近似值要遍历元素会涉及到比对最大值或最小值和绝对值。
跨进程调用对运行效率有影响,可以考虑导出到DBF或数组来确定元素位置。

#5
zhousr2023-06-03 20:12
好的,谢谢吹版!!
#6
zhousr2023-06-04 09:57
这个EXCEL本身就是从DBF导出的。现在在DBF里用seek定位,修改一个字符型字段的值,导出到数组,到EXCEL里再找出来、定位,并修改回去。已经较好地解决了问题。
两次谢谢吹版指点!!
#7
my23182023-06-04 17:39
以下是引用zhousr在2023-6-4 09:57:40的发言:

这个EXCEL本身就是从DBF导出的。现在在DBF里用seek定位,修改一个字符型字段的值,导出到数组,到EXCEL里再找出来、定位,并修改回去。已经较好地解决了问题。
两次谢谢吹版指点!!

这样的话,直接在dbf中修改再重新导出excel表岂不更方便快捷。
#8
zhousr2023-06-04 20:22
以下是引用my2318在2023-6-4 17:39:30的发言:


这样的话,直接在dbf中修改再重新导出excel表岂不更方便快捷。


原来就是这样做的。导出到EXCEL主要是进行一些后期格式的处理,需要找到某个特定值所在的行。
1