设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
楼主: tmtony
打印 上一主题 下一主题

[基础应用] Excel技巧接龙

[复制链接]
1#
发表于 2006-6-16 20:46:00 | 显示全部楼层
本人也给大家推荐一个查找程序,适用于连续在一个多数据表格里查找,

先建立一个窗体USERFORM1,添国两个文本框 TEXTBOX1,TEXTBOX2,两个标签LABEL1,LABEL2

Dim HH1 As Range
Dim HH2 As Range
Dim DD1, DD2

Private Sub CommandButton1_Click()
For DD2 = DD1 + 1 To 300
If Cells(DD2, 1).Text Like "*" & TextBox1.Text & "*" Then
ActiveWindow.ScrollRow = DD2
DD1 = DD2
GoTo LINE2
Else
End If
Next
LINE2:

End Sub

Private Sub TextBox1_Change()

For Each HH1 In Range("A4:A5000")
If HH1.Text Like "*" & TextBox1.Text & "*" Then
ActiveWindow.ScrollRow = HH1.Row
DD1 = HH1.Row
GoTo LINE1
Else
End If
Next
LINE1:
TextBox2.Text = ""
End Sub

Private Sub TextBox1_Enter()
If TextBox1.Text = "" Then
Else
If Label2.Caption = "数量无" Then  '判断要不要输入数字

Else

If TextBox2.Text = "" Then '判断第二框有无数字
MsgBox "请输入正确的数字!"
Else

If Cells(DD1, 38).Text <> "" Then '判断第38列有无数字,有则提示
MsgBox "请输入正确的数字!"
TextBox2.Text = ""
Else
Cells(DD1, 38).Value = TextBox2.Text '在第38列输入第二框的数字
TextBox2.Text = ""
End If

End If

End If
End If
End Sub

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Select Case KeyCode
Case 17
Cells(DD1, 2).Value = "OK" '在第38列输入OK
TextBox1.Text = ""
Case 38
TextBox1.Text = ""
Case 39
For DD2 = DD1 + 1 To 5000
If Cells(DD2, 1).Text Like "*" & TextBox1.Text & "*" Then
ActiveWindow.ScrollRow = DD2
DD1 = DD2
GoTo LINE2
Else
End If
Next
LINE2:
Case 37 '按左光标键后的程序
If Cells(DD1, 38).Text <> "" Then
MsgBox "请输入正确的数字!"
Else
Cells(DD1, 38).Value = "OK" '在第38列输入OK
TextBox1.Text = ""
End If
End Select

End Sub
Private Sub LABEL2_Click()
If Label2.Caption = "数量:" Then
Label2.Caption = "数量无"
TextBox2.Enabled = False
Else
Label2.Caption = "数量:"
TextBox2.Enabled = True
End If
End Sub


Private Sub UserForm_Initialize()
DD1 = 1
End Sub

在模块里建立一个启动程序

SUB SEARCH()

USERFORM1.SHOW

END SUB
2#
发表于 2006-6-16 21:01:00 | 显示全部楼层
本人在给大家介绍一个简单的录入程序,对简单却繁锁的数据输入较有效,

如有不明白,或其他想与本人讨论的请加QQ: 648715289

先建立一个窗体USERFORM1,添加三个文本框TEXTBOX1,TEXTBOX2,TEXTBOX3,再添加一个标榜LABEL1

TEXTBOX1 用来输货号,编号,等等,输入时只要输入有代表性的几位就可以了,如输POLO-20315,可只输入20315,如果包含20315的只有这个则马上可以自动找出并输入表格<如有POLO-20308,POLO-20309,POLO-20310,POLO-20312,POLO20313,POLO-20315....时)

TEXTBOX2 用来输数据,数量,重量,价格等

TEXTBOX3 用来输货号或编号特定不变的符号或文字<输入后不自动变更>,没有则不输,

Dim CH1 As Range
Dim CH2 As Range
Dim DD1
Dim DD2

Private Sub TextBox1_Change()
TextBox3.Enabled = True
For Each CH1 In Sheets(1).Range("A1:A5000")
If CH1.Text Like "*" & TextBox1.Text & "*" Then
Label1.Caption = CH1.Text
DD1 = CH1.Row
GoTo LINE11
Else
End If
Next
LINE11:
End Sub

Private Sub TextBox1_Enter()
If TextBox3.Text = "" Then
TextBox1.EnterFieldBehavior = 0
Else
TextBox1.EnterFieldBehavior = 1
End If

If TextBox2.Text = "" Then

Else
For Each CH2 In Sheets(2).Range("A2:A5000")

If CH2.Text = "" Then
CH2.Value = Label1.Caption
Sheets(2).Cells(CH2.Row, 2).Value = TextBox2.Text
TextBox1.Text = TextBox3.Text
TextBox2.Text = ""
GoTo LINE1
Else
End If
Next
LINE1:
End If

End Sub

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Select Case KeyCode

Case 38 '按上光标键清楚TEXTBOX1的内容
TextBox1.Text = ""
Case 39 '右光标键 继续查找
For DD2 = DD1 + 1 To 5000
If Sheets(1).Cells(DD2, 1).Text Like "*" & TextBox1.Text & "*" Then
Label1.Caption = Sheets(1).Cells(DD2, 1).Text
DD1 = DD2
GoTo LINE2
Else
End If
Next
LINE2:
Case 37 '按左光标键后的程序

End Select
End Sub

Private Sub TextBox2_Enter()
TextBox3.Enabled = False
End Sub
3#
发表于 2006-6-16 21:12:00 | 显示全部楼层
我再给大家介绍一个多条件求和函数,

{=SUM(IF(A1:A200=G2,IF(B1:B200=G3,IF(C1:C200>G4,IF(D1200<G5,F1:F200)))))}

        条件1,          条件2,       条件3,        条件4,|,    结果和    大括号表示这是数组公式 同时按Ctrl + Shift + Enter 这三个即可设成为数组公式

意思就是求A1:A200中有G2所对应的,B1:B200中有G3所对应的,C1:C200中有G3所对应的,D1200中有G4所对应的,即这四个同理对应时的F1:F200中的和

如有不明白,或其他想与本人讨论的请加QQ: 648715289
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-6 06:35 , Processed in 0.112274 second(s), 26 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表