有3个框,
在第一个文本框中输入CWF文档第一列中的数值后,在第二和第三个框中会分别显示CWF文档中第二列和第三列的内容。
大概代码是这样,就是红字部分代码想请大家帮个忙,谢谢。
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then Label2.Caption =查找C:\CWF.xls文档中Text1框中输入的数值所对应的第2列的内容是什么 Label3.Caption =查找C:\CWF.xls文档中Text1框中输入的数值所对应的第3列的内容是什么 Else MsgBox ("数据不存在,请重新输入!!") End If
End If
End Sub
例子:text1 输入 145133704 label2 显示 NWP2 label3 显示 SERIAL NUMBER LABEL
请大家有空帮个忙,写下代码,谢谢了!
Option Explicit '指定变量必须定义
Private Type 数据表格类型
S1 As String
S2 As String
S3 As String
End Type
Dim CWF() As 数据表格类型
Dim CWFCOUNT As Long
Dim path As String
Private Sub Combo1_Click()
Call Combo1_KeyDown(13, 0) '当选择下拉列表时,就相当于按下了回车键
End Sub
Private Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer)
Dim i As Long
If KeyCode = 13 Then
For i = 1 To CWFCOUNT '查表
If CWF(i).S1 = Combo1.Text Then '找到
Label2.Caption = CWF(i).S2 '显示内容
Label3.Caption = CWF(i).S3
Exit For '退出循环
End If
Next i
If i > CWFCOUNT Then '判断是否找到
MsgBox "数据不存在,请重新输入!!" '未找到则提示
End If
End If
End Sub
Private Sub Form_Load()
Dim i As Long
path = App.path '初始化应用程序路径,以便定义数据文件
If Right(path, 1) <> "\" Then '统一路径格式
path = path & "\"
End If
'读取数据列表,以便查表
Dim ExcelID As Excel.Application '定义对象
Set ExcelID = New Excel.Application '生成新的 Excel 对象
With ExcelID
' .Visible = True 'debug
.Visible = False '显示EXCEL ,如果不用显示,这里就不显示
.Caption = "应用程序调用 Microsoft Excel" 'EXECL 标题
.Workbooks.Open path & "CWF.XLS" '打开文件
.Worksheets.Item(1).Activate '设置第一个工作表为活动工作表
i = 2 '使用do循环读数据总个数
Do While .Cells(i, 1) <> ""
i = i + 1
Loop
CWFCOUNT = i - 2
ReDim CWF(CWFCOUNT) '重定义数组
For i = 1 To CWFCOUNT '使用 FOR 循环读所有的数据
CWF(i).S1 = .Cells(i + 1, 1)
CWF(i).S2 = .Cells(i + 1, 2)
CWF(i).S3 = .Cells(i + 1, 3)
Combo1.AddItem CWF(i).S1 '同时把 需要输入的数据添加到 输入框的下拉列表中
Next i
.Workbooks.Close '读完数据后,关闭数据表
.Quit '退出 Excel
End With
Set ExcelID = Nothing
End Sub