友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
一世书城 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

Excel word ppt office使用技巧大全(DOC格式)-第98章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!






                                                                                        419  


…………………………………………………………Page 420……………………………………………………………

                                                           



End Sub  

再到 personal 任何 1 个 Module  

Public z As New Class1  

Sub lnitialzeApp()  

Set z。App = Application  

End Sub  



                              在已有数值的单元格中再增加或减去另一个数   



Sub MyMicro( )    

        OldValue = Val (ActiveCell。Value )    

        InputValue = InputBox (         “输入数值,负数前输入减号”;  “小小计算器”)    

        ActiveCell。Value = Val (OldValue  +  InputValue)    

    End Sub    

 问:此宏一次只能输入一个数值,如何才能一次输入多个数值(如:1+2+3。。。),另外,能否进 

行乖除运算?  

答:Inputvalue1=。。。。。    

Inputvalue2=。。。。。    

Inputvalue3=。。。。。    

。。。。。。    

ActiveCell。Value = Val (OldValue  +  InputValue1+Inputvalue2+Inputvalue3。。。)    

  

乘或除把里面的‘+ ’换成‘*’或‘/ ’即可  



                                    对 excel 里录入的数据进行关系验证  



 比如:A1 、A2 、A3 这 3 个单元格,已经输入了 3 个数字,    

现在需要验证这 3 个已经输入的数据是否满足 A1=A2+A3 的    

关系,应该如何设置呢?    

我的方法是:在一个新的单元格中输入以下公式:=if(a1=a2+a3;true;false);如果 a1=a2+a3;该单 

元格的值为 true;否则为 false  。但是这种做法会占用到该工作表的空间,而该工作表已经非常 

大了(有 1000 多行,要满足各种各样公式关系的很多),我希望能够做到跳出一个窗口告诉我 

哪些单元格不符合公式关系,相当于审核工作表的功能。  

解答:本例是依据竖向记录检验的。运行时将 x 替换成记录行数。    

Sub pd()    

Dim cw(1000) As Integer    

For i = 1 To x '…………x 为记录行数    

If Sheet1。Cells(i; 3)  Sheet1。Cells(i; 1) + Sheet1。Cells(i; 2) Then    

j = j +  1    

cw(j) = i    

End If    

Next i    

Sheets(1)。Select    

For i = 1 To j    

For k = 1 To 3    



                                                                                                          420  


…………………………………………………………Page 421……………………………………………………………

                                                      



Sheet1。Cells(cw(i); k)。Select    

Selection。Font。Bold = True    

Selection。Interior。ColorIndex = 35    

Selection。Font。ColorIndex = 3    

Next k    

Next i    

Sheets(2)。Select    

Sheets(2)。Cells(1; 1) = 〃数据数值输入错误有〃 & j & 〃处〃    

For i = 1 To j    

Sheets(2)。Cells(i + 1; 1) = 〃数据数值输入有误!!!(第〃 & cw(i) & 〃行)〃    

Next i    

End Sub  



                               如何自动跳过有公式的单元格继续输入  



可以使用 Change 事件完成  

Private Sub Worksheet_Change(ByVal Target As Range)  

If Target。Row 《 11 And Target。Column 《 3 Then  

If Target。Column = 1 Then  

Target。Offset(0; 1)。Select  

ElseIf Target。Column = 2 Then  

Target。Offset(1; …1)。Select  

Else  

Exit Sub  

End If  

End If  

End Sub  



                             查询设计“最近”“连续”“三次”〃Pass〃  



Q:字段名 5 个或更多,记录有近 8000 条。    

ID  产品编号  订单编号  供应商名称  来货结果    

1 A001 0001 3M Fail /2 A001 0002 3M Fail /3 A001 0003 3M Pass/4 A001 0004 3M Pass /5 A001  

0005 3M Pass /6 A002 0006 JVC Pass /7 A002 0007 JVC Pass /8 A002 0008 JVC Pass /9 A002  

0009 JVC Pass /〃〃〃〃按照公司进货处理,如果某一产品“最近”“连续”“三次”〃Pass〃则 

此产品以后之来货可以“免检”。订单编号由过去至现在为 0001~0013 至更大;则上例中,  请 

问,如何设计查询?    

  A:  方法 1:  

用公式分类排序(闻鸥学堂里有),只排出每类前三个,判断是否都是“Pass ”,然后。。。。会 

了?    

方法:  

1。  在 F4 输入公式    

=IF(AND(B4=B3;B4=B2;E4=〃pass〃;E3=〃pass〃;E2=〃pass〃);1;0)    

2。  在 F4 单元格右下角快按 2 下(填满公式)    

3。  将下列程序 COPY 至 VBA 中;再做个按钮(更新) 即可    



                                                                                                 421  


…………………………………………………………Page 422……………………………………………………………

                                                              



***************************    

Sub DD()    

On Error GoTo 999    

Range(〃H2:H200〃) = 〃〃    

For I =  1 To 99 '假設有產品編號 99 種    

A = 〃0〃 & Trim(Str(I)) 'A001~A020    

Range(〃B:B〃)。Select '    

Cells。Find(What:=A; After:=ActiveCell; LookIn:=xlFormulas; LookAt _    

:=xlPart; SearchOrder:=xlByRows; SearchDirection:=xlUp; MatchCase:= _    

False)。Activate '找最後一筆    

B = ActiveCell    

If Cells(ActiveCell。Row; 6) = 1 Then '是否為連續 3 筆 PASS    

Range(〃H65535〃)。End(xlUp)。Offset(1)。Select '找最後一筆    

ActiveCell = B '免檢資料放在 H 欄    

End If    

Next I    

999    

'A1'。Select    

End Sub    

方法 3 :  

小修改;不使用公式;只使用VBA    

Sub DD()    

On Error GoTo 999    

Range(〃H2:H200〃) = 〃〃    

For I = 1 To 99 '假设有产品编号 99 种    

A = 〃0〃 & Trim(Str(I)) 'A001~A099    

Range(〃B:B〃)。Select '产品编号    

Cells。Find(What:=A; After:=ActiveCell; LookIn:=xlFormulas; LookAt _    

:=xlPart; SearchOrder:=xlByRows; SearchDirection:=xlUp; MatchCase:= _    

False)。Activate '找最后一笔    

If ActiveCell。Row 》= 3 Then    

B = ActiveCell    

S1 = UCase(ActiveCell。Offset(0; 3)) '最后第 1 笔来货结果    

S2 = UCase(ActiveCell。Offset(…1; 3)) '最后第 2 笔来货结果    

S3 = UCase(ActiveCell。Offset(…2; 3)) '最后第 3 笔来货结果    

N1 = ActiveCell。Offset(0; 0) '最后第 1 笔产品编号    

N2 = ActiveCell。Offset(…1; 0)    

N3 = ActiveCell。Offset(…2; 0)    

If S1 = 〃PASS〃 And S2 = 〃PASS〃 And S3 = 〃PASS〃 And N1 = N2 And N1 = N3 Then '是否为连续 

3 笔 PASS    

Range(〃H65535〃)。End(xlUp)。Offset(1)。Select '找最后一笔    

ActiveCell = B '免检资料放在 H 栏    

End If    

End If    



                                                                                                               422  


…………………………………………………………Page 423……………………………………………………………

                                                                   



Next I    

999    

Range(〃A1〃)。Select    

End Sub    

方法 4 :  

Sub checkparts()    

'On Error Resume Next    

Dim checksize As Integer    

Dim samePN As Integer    

Dim id As Integer    

Dim acceptcount As Integer    

Dim firstPN; nextPN As String    

Dim vendor As String    

checksize = InputBox(〃Enter the number consecutive records to check for each PN〃)    

Columns(〃G:I〃)。Select    

Selection。ClearContents    

Range(〃B1〃)。Select    

id = 1    

While ActiveCell。Value  〃〃    

firstPN = Trim(ActiveCell。Value)    

samePN = 1    

nextPN = Trim(ActiveCell。Offset(samePN; 0)。Value)    

vendor = Trim(ActiveCell。Offset(0; 3)。Value)    

Do While nextPN = firstPN    

samePN = samePN + 1    

nextPN = Trim(ActiveCell。Offset(samePN; 0)。Value)    

Loop    

If samePN 》= checksize Then    

For acceptcount = 0 To checksize  1    

If UCase(Trim(ActiveCell。Offset(acceptcount; 2)。Value))  〃ACCEPTED〃 Then Exit For    

Next acceptcount    

If acceptcount = checksize Then    

Cells(id; 7) = id    

Cells(id; 8) = firstPN    

Cells(id; 9) = vendor    

id = id + 1    

End If    

End If    

ActiveCell。Offset(samePN)。Select    

Wend    

Columns(〃G:I〃)。Select    

With Selection。Font    

。Name = 〃Arial〃    

。Size = 9    



                                                                                                                         423  


…………………………………………………………Page 424……………………………………………………………

                                                           



。Strikethrough = False    

。Supers cript = False    

。Subs cript = False    

。OutlineFont = False    

。Shadow = False    

。Underline = xlUnderlineStyleNone    

。ColorIndex = xlAutomatic    

End With    

With Selection    

。HorizontalAlignment = xlLeft    

。VerticalAlignment = xlBottom    

。WrapText = False    

。Orientation = 0    

。AddIndent = False    

。ShrinkToFit = False    

。MergeCells = False    

End With    

Selection。Columns。AutoFit    

Range(〃G1〃)。Select    

ActiveWindow。SmallS
返回目录 上一页 下一页 回到顶部 0 1
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!