注册 登录
编程论坛 VB6论坛

VB6中TEXTBOX输入内容为数字,查找数据输出了错误的结果,麻烦大神check下代码

lliiss681 发布于 2021-09-13 17:47, 1834 次点击
我用TEXTBOX输入的数值进行查找数据,结果查到了错误的结果,代码如下
Dim P As Integer
P = Val(HP)  'HP是我TEXTBOX的名字
If Cells(j, 2) >= P then
a = a + "   " + xlSheet.Cells(j, 1).Value & vbCrLf
End If
Me.Text1.Text = a



比如我输入值是8,想查找大于等于8的值,结果连6都进行输出了,
我问的问题就是VB6在查找数据时候会出错吗?还是我的TEXTBOX赋值函数用的VAL()有问题啊?
应该怎么用呢才能准确的查到大于8的值?
7 回复
#2
apull2021-09-13 22:15
P = Val(HP.Text)
#3
lliiss6812021-09-14 08:52
回复 2楼 apull
我试了下,还是不行,就是这种错误输出是偶发性的,不是每一次都会输出错误结果,有时候确是正确的,我是在同一个EXCEL文件的不同sheet查找大于8的数据,用两个BUTTON控件进行控制,时常出错
#4
风吹过b2021-09-14 11:11
If Cells(j, 2) >= P then
a = a + "   " + xlSheet.Cells(j, 1).Value & vbCrLf

IF里取值与 下面一行的取值命令不同。
另外,CELLS里的值是 什么格式,是不是也要用 VAL 函数 转换一下??
#5
lliiss6812021-09-14 11:25
回复 4楼 风吹过b
“IF里取值与 下面一行的取值命令不同”请问大神这个句指点是指什么?没有看懂
CELL()里都是数字,就是EXCEL里填入的都是数字,然后最终输出显示的那列是文本
#6
cwa99582021-09-14 12:59
If val(Cells(j, 2)) >= P then
这样试试看。
字符串最好用 & 相加。
#7
lliiss6812021-09-14 13:27
回复 6楼 cwa9958
后来我有加VAL()试了下还是不行,还是容易把小于P的值进行输出
我条件语句里用的AND合并查找两个条件,比如是

Dim P As Integer
Dim Q As Integer
P = Val(TEXTBOX1)
Q=VAL(TEXTBOX2)
If VAL(Cells(j, 2)) >= P and VAL( Cells(j, 3) )>= Q then
a = a + "   " + xlSheet.Cells(j, 1).Value & vbCrLf
End If
Me.Text1.Text = a

有Button1和Button2,点击按钮1的时候对SHEET1数据筛查,点击按钮2对sheet2数据筛查,(sheet1和sheet2同属一个excel文件)就是输完P和Q的值后,分别点击按钮1输出一个结果,再点击按钮2输出一个结果,这中间需要对Q和P进行清空吗?
#8
lliiss6812021-09-14 14:28
我两次button时间里都有如下语句,两次button访问同个文件会出这种数据错误吗
Dim xlApp As Excel.Application '声明对象变量
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim OpenExecl As Long
Dim ExcelPath As String
Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象
Set xlBook = xlApp.Workbooks.Open("E:\VB\\0913\Book111.xls")  '打开存在的execl文件
xlApp.Visible = False '设置EXCEL对象可见(或不可见)
Set xlSheet = xlBook.Worksheets("Sheet1") '设置活动工作表
xlSheet.Activate '激活工作表
RCOUNT = xlApp.ActiveSheet.UsedRange.Rows.Count
For j = 126 To RCOUNT Step 1
1