八宝书库 > 文学其他电子书 > Excel word ppt office使用技巧大全(DOC格式) >

第75部分

Excel word ppt office使用技巧大全(DOC格式)-第75部分


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




B1 = B2   

I3 = I3 1   

MsgBox (B1); ; 〃差额数量〃   

GoTo LINE4:   

End If   

Else   

B1 = B1 + Cells(I3; H + 1)。Value   

I3 = I3 1   

GoTo LINE4:   

End If   

使用了循环语句   

使用了 b1 b2 b3 作为数量的传递。   

简单测试通过。  



                                           一个加密系统  



在打开 EXCEL 时,先运行我的加密窗口(用 VBA 编写的 LOCK。frm),现在请问,如何在当关闭 

…加密窗口 (lock。frm)时,自动关闭 EXCEL??我曾经见过其它 EXCEL 模块有此功能,但不知 

如何编写的。  

解答:********ThisWorkbook program *********   

Private Sub Workbook_Open()   

UserForm1。Show   

End Sub   

*********** UserForm1 program *********   

Private Sub mandButton1_Click()   

UserForm1。Hide   

If UCase(input1)  〃ULOCK〃 Then 'input1》》textbox   



                                                                                             399  


…………………………………………………………Page 400……………………………………………………………

                                               



MsgBox 〃密码错误〃   

ActiveWindow。Close   

End If   

MsgBox 〃欢迎使用本系统。。。。。。。〃   

End Sub  



      在不同工作表里位置相同的单元格里相同的公式,根据工作表名称引用不同的单元格  



 解答:如果工作表的名称做的有规律就比较简单,可以用变量生成序号,然后合成工作表名 

称,比如:   

i=5   

j=〃sheets〃+ctsr(i)   

m=j。cells(2;1)。value   

更改 i 的值就能引用不同工作表了。   

如果没有规律,可以求工作表的序号,进而得到工作表的名称,然后如何引用就很类似了。  



                                    快速撤销工作表保护  



有一工作表,在其中的几列中有计算公式,比如 B、F、K 列等,且其中有一列公式使用的函数 

为 HYPERLINK(),直接点击该单元格时会打开一个网页。当我要在工作表中进行插入行操作时, 

如何快速完成如下工作:1:撤销工作表保护;2、将所有公式复制到新插入行中;3、进行工 

作表保护。   

如果使用宏该如何设计?  

解答:1。在你的宏前先取消保护   

ActiveSheet。Unprotect (〃1234〃)   

此例假设密码为 1234   

   执行完宏再次保护工作表   

ActiveSheet。Protect Password:=〃1234〃   

此例假设密码 1234。  

2:你的第 1;3 问如楼上所说,或写个过程:   

Sub sSheetProtect(Protect As Boolean)   

    With ActiveSheet   

        If 。ProtectContents = True Then   

            。Unprotect Password:=〃password〃   

        End If   

        If Protect = True Then   

            If 。ProtectContents = False Then   

                            。Protect  Password:=〃password〃;  DrawingObjects:=True;  

Contents:=True; Scenarios:=True   

            End If   

        End If   

    End With   

End Sub   

第 2 个问:   

    Rows(〃4:4〃)。Insert Shift:=xlDown   



                                                                                  400  


…………………………………………………………Page 401……………………………………………………………

                                                 



    Rows(〃3:3〃)。Copy   

    Rows(〃4:4〃)。PasteSpecial Paste:=xlFormulas  



                                     关于加密窗口的问题  



  问题一:关于加密窗口的问题!上次请教了一个关闭 EXCEL 函数的问题!现在又发现一个问题: 

即在VBA 的FRM 窗口右上方的“X”如果去掉?因为它关闭了我的加密窗口就不起作用?或者 

如果按“X”的时候,自动关闭EXCEL 就行,如何?问题二,我每次经过加密窗口后进入工作 

表,总是被隐藏了,用什么函数把隐藏的 自动打开?  

解答:1、Private Sub UserForm_QueryClose(Cancel As Integer; CloseMode As Integer)   

If CloseMode  1 Then Cancel = 1   

UserForm1。Caption = 〃The Close box won't work! Click me!〃   

End Sub   

2、Sub dd()   

For i = 1 To Worksheets。Count   

Sheets(i)。Visible = True   

Next i   

End Sub  



                             加密窗口为何总是出现 424 出错信息  



*********** UserForm1 program *********   

Private Sub mandButton1_Click()   

UserForm1。Hide /// 这里总是出错 424   

If UCase(input1)  〃ULOCK〃 Then 'input1》》textbox   

MsgBox 〃密码错误〃   

ActiveWindow。Close   

End If   

MsgBox 〃欢迎使用本纟统。。。。。。。〃   

End Sub  

解答:1。你要先自订 Form;Form 的名称为UserForm1   

2。form 中有 textbox 设名称为 input1   

以上若未设则error  



                   我在做自定义菜单欲仿 EXCEL 菜单用横线分隔各菜单项目  



 解答:下面是我用到的代码:   

Set mymenubar = mandBars。ActiveMenuBar   

Set newmenu1 = mymenubar。Controls。Add(Type:=msoControlPopup; _   

Temporary:=True)   

newmenu1。Caption = 〃文件制作 (&M)〃   

newmenu1。BeginGroup = True '这就是你要的白色横线  



                                    用 VBA 函数算出行数值  



解答:如在 A 列有数据  

Sub pd()  



                                                                                      401  


…………………………………………………………Page 402……………………………………………………………

                                                    



a = 1  

Do Until Cells(a; 1) = 〃〃  

a = a + 1  

Loop  

行数 = a 1  

End Sub  

解答 2:假如数据在A 列,试试这个,中间有空单元格也没关系,  

Right(Sheet1。Columns(1)。SpecialCells(xlCellTypeConstants;                  xlNumbers          +  

xlTextValues)。Address; 1)  

再问解答 2:你整怎么复杂,是什么意思哟?  

解答:研究研下面宏你就会明白了  

Sub kkk()  

ActiveSheet。Cells(2; 1) = 〃Text1〃  

ActiveSheet。Cells(4; 1) = 2  

ActiveSheet。Cells(5; 1) = 〃Text2〃  

ActiveSheet。Cells(8; 1) = 3  

MsgBox ActiveSheet。Columns(1)。SpecialCells(xlCellTypeConstants; _  

xlNumbers)。Address  

MsgBox ActiveSheet。Columns(1)。SpecialCells(xlCellTypeConstants; _  

xlTextValues)。Address  

MsgBox ActiveSheet。Columns(1)。SpecialCells(xlCellTypeConstants; _  

xlNumbers + xlTextValues)。Address   

End Sub   



                              在 VBA 中判断单元格区域内是否为空值  



解答:用循环语句  

Sub kg()  

Dim mycell As Range  

For Each mycell In Range(〃a1:e9〃)  

If mycell = 〃〃 Then mycell = 1000   

Next mycell  

End Sub   

Sub sumrange()  

Dim mycell As Range  

For Each mycell In Range(〃a1:e9〃)  

If mycell  〃〃 Then myresult = mycell+myresult   

Next mycell  

End Sub  



                     excel 中如何设定光标输入到某个单元格后回车自动换行  



解答:Option Explicit   

Const ColumnOfTheCell2BeReturn As Integer = 5 '到第 5 列换行   

'指定单元格中按回车键自动换行   



                                                                                            402  


…………………………………………………………Page 403……………………………………………………………

                                                      



Private Sub Worksheet_SelectionChange(ByVal Target As Range)   

Static LastRow As Integer   

  

Dim R%; C%   

R = Target。Row:   

C = Target。Column   

If Application。MoveAfterReturnDirection = …4161 Then '按回车光标右移   

If C = ColumnOfTheCell2BeReturn + 1 Then Cells(R + 1; 1)。Select   

End If   

If Application。MoveAfterReturnDirection = …4121 Then '按回车光标下移   

If C = ColumnOfTheCell2BeReturn And (R LastRow = 1) Then Cells(R; 1)。Select   

End If   

LastRow = R   

End Sub  

修改上面解答:Private Sub Worksheet_SelectionChange(ByVal Target As Range)   

Static LastColumn As Integer   

C = Target。Column   

Select Case Target。Column   

Case 5   

Application。MoveAfterReturn = False 'STOP   

'Cells(Target。Row + 1; 1)。Select '第一格   

Case Is 《 5   

Application。MoveAfterReturn = True   

Application。MoveAfterReturnDirection = xlToRight '右移   

Case Is 》 5   

Application。MoveAfterReturn = True   

Application。MoveAfterReturnDirection = xlDown '下移   

End Select   

If C = 5 And C = LastColumn Then Cells(Target。Row + 1; 1)。Select   

LastColumn = C   

  

End Sub  



                        带编号的(000001 ………999999)在打印时实现自动编号  



解答:Sub 序号打印 ()   

Dim lsh As Integer   

lsh = 0   

Do While lsh 

返回目录 上一页 下一页 回到顶部 0 0

你可能喜欢的