视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
VB查询excel
2025-09-29 00:18:53 责编:小OO
文档
vb查询excel中的数据

10

[ 标签:vb,excel 数据,数据 ] 

我要写个VB的小程序,在vb程序里输入内容去查找excel表是否有这个数据。要精确查找的,如果没有这条数据就自动添加一行在excel里。因小弟不是做VB开发的,在自己试验了多次后还是不行,可以模糊查找出来但不能精确查找。希望vb高手帮忙给个小实例。分有的是。neng 

问题补充  2009-11-18 10:26

Private Sub Command1_Click()

Dim ExApp As New Excel.Application

Dim Exb As Excel.Workbook

Dim Exsh As Excel.Worksheet

Dim count As Integer

Dim Rz() As String

ExApp.Workbooks.Open App.Path & "\\" & "停车券及咖啡申领" & ".xls" 'excel路径

Set Exb = ExApp.Workbooks(1)

Set Exsh = Exb.Worksheets("免费咖啡申领")

For i = 1 To Exsh.UsedRange.Rows.count

For j = Asc("B") To Asc("B")

If InStr(Exsh.Range(Chr(j) & i), Text2.Text) > 0 Then

usercard(0).Caption = Exsh.Range(Chr(j) & i).Value

MsgBox "已领取!'"

End If

Next j

Next i

ExApp.Workbooks.Close

ExApp.Quit

Set ExApp = Nothing

End Sub

我现在是模糊查询 并让他显示出在vb里

□刺猬□ 回答:5 人气:5 解决时间:2009-11-18 15:06 

满意答案

好评率:0% 

Private Sub Command1_Click()

Dim ExApp As New Excel.Application

Dim Exb As Excel.Workbook

Dim Exsh As Excel.Worksheet

Dim ahha As Integer

Dim Rz() As String

ahha = 0

ExApp.Workbooks.Open App.Path & "\\" & "停车券及咖啡申领" & ".xls" 'excel路径

Set Exb = ExApp.Workbooks(1)

Set Exsh = Exb.Worksheets("免费咖啡申领")

For i = 1 To Exsh.UsedRange.Rows.count

For j = Asc("B") To Asc("B")

If Exsh.Range(Chr(j) & i) = Text2.Text) > 0 Then

usercard(0).Caption = Exsh.Range(Chr(j) & i).Value

MsgBox "已领取!'"

ahha = 5

End If

Next j

Next i

if ahha = 0 then Exsh.Range("B" & Exsh.UsedRange.Rows.count + 1) = text2.text

ExApp.Workbooks.Close

ExApp.Quit

Set ExApp = Nothing

End Sub

增加了一if语句,就可以写入没有的了。

提问人的追问   2009-11-18 13:53 

为什么我这写入的时候,提示是否保存excel表,然后我点保存  我打开看表里面还是没有我插入的数据。

评价答案

∙您已经评价过!

好:0 

∙您已经评价过!

一般:0 

∙您已经评价过!

不好:0 

∙您已经评价过!

原创:0 

∙您已经评价过!

非原创:0 

:)HE 回答采纳率:42.9% 2009-11-18 12:08 

满意答案

好评率:0% 

给你个示例程序,一个按钮,command1,一个TEXT1,一个test.XLS跟程序放一个目录

Private Sub Command1_Click()

Dim ExApp As New Excel.Application

Dim Exb As Excel.Workbook

Dim Exsh As Excel.Worksheet

Dim i As Integer

Dim j As Integer

Dim R1 As Excel.Range

Dim count As Integer

Dim Rz() As String

ExApp.Workbooks.Open App.Path & "\est.xls" 'excel路径

Set Exb = ExApp.Workbooks(1)

Set Exsh = Exb.Worksheets("Sheet1")

For i = 1 To Exsh.UsedRange.Rows.count

For j = Asc("A") To Asc("T")

If InStr(Exsh.Range(Chr(j) & i), Text1.Text) > 0 Then

count = count + 1 '统计个数

ReDim Preserve Rz(0 To count) '更改数组尺寸

Rz(count - 1) = Chr(j) & i '保存数据

Debug.Print Rz(count - 1)

End If

Next j

Next i

ExApp.Workbooks.Close

ExApp.Quit

Set ExApp = Nothing

End Sub

运行看看

提问人的追问   2009-11-18 10:28 

我就是根据这个改的 大哥。!~ 可是不行

团队的补充   2009-11-18 10:56 

我明白你说的意思了,问题出在这句If InStr(Exsh.Range(Chr(j) & i), Text2.Text) > 0 Then

改成If Exsh.Range(Chr(j) & i)=Text2.Text) Then

就可以准确查询了下载本文

显示全文
专题