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

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

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




end sub  



                                  如何设定文本框的输入属性  



我在excel 中放置了一个文本框〃textbox〃,如何设定该文本框的属性只能是数值,例如设定excel 

单元格为货币一样。  

解答 1:  

Private Sub textbox_KeyPress(ByVal KeyAscii As MSForms。ReturnInteger)  

    If KeyAscii 《 48 Or KeyAscii 》 57 Then  

        MsgBox 〃必须输入数字〃; vbExclamation; 〃Warning!〃  

        SendKeys (〃{backspace}〃)  

    End If  

End Sub  

这是我程序中的例子  

解答 2 :能在 CHANG 事件中用 isnumeric()函数判断是否是数值,在 exit 事件中用 format()函 

数将数值转换成货币格式。  



                                                                                        442  


…………………………………………………………Page 443……………………………………………………………

                                                                    



                                            一个处理文本排序的自定义函数  



下面是一个处理文本排序的自定义函数(数组),红字部分本人不太明白,为什么要用 Trans 

pose 转换?请高手指点。  

Function SORTED(rng; Optional ascending) As Variant  

    Dim SortedData() As Variant  

    Dim CellCount As Long  

    Dim Temp As Variant;  i As Long; j As Long  

    CellCount = rng。Count  

    ReDim SortedData(1 To CellCount)  

      

     If  IsMissing(ascending) Then ascending = True  

     If rng。Columns。Count 》  1 Then  

        SORTED = CVErr(xlErrvalue)  

        Exit Function  

    End  If  

    For  i =  1 To CellCount  

        SortedData(i) = rng(i)  

         If TypeName(SortedData(i)) = 〃Empty〃 Then SortedData(i) = 〃〃  

    Next  i  

    On Error Resume Next  

    For  i =  1 To CellCount  

        For j =  i +  1 To CellCount  

             If SortedData(j)  〃〃 Then  

                 If ascending Then  

                     If SortedData(i) 》 SortedData(j) Then  

                        Temp = SortedData(j)  

                        SortedData(j) = SortedData(i)  

                        SortedData(i) = Temp  

                    End  If  

                Else  

                     If SortedData(i) 《 SortedData(j) Then  

                        Temp = SortedData(j)  

                        SortedData(j) = SortedData(i)  

                        SortedData(i) = Temp  

                    End  If  

                End  If  

            End  If  

        Next j  

    Next  i  

      

    SORTED = Application。Transpose(SortedData)  

End Function   

解答:数组分为两种:   



                                                                                                                          443  


…………………………………………………………Page 444……………………………………………………………

                                               



1  、横数组 用单元格比喻是 A1: D1  (其实单元格就可理解成数组)  

2  、竖数组 用单元格比喻是 A1: A4  



在过程中形成的数组都为横数组 如 SortedData   



Transpose  函数能将 横数组 转为 竖数组;竖数组 转为 横数组  



SORTED  函数返回的都是竖数组,这样就可把数据方便的放入一列内或  listbox bobox 等内  



只是个人理解,供参考  



                                 如何在在公式内加插批注  



储存格公式的备注参考可用多种方式表示,如储存格本身的备注,在公式旁的储存格用文字表 

示、、、等等。现在为大家介绍一个小技巧,就是用 N  函数在公式内加插批注,N  函数的详细 

请参考电子表格的帮助。   



这个小技巧主要利用 N(其它),传回 0  的特色。文字属于其它,例子如下: B6  ,C6 及 D6 是 

三个区域的个别统计数字,H20 则是他们的总和,平常公式是:=SUM(B6:D6)。在公式内加插 

批注可以这样表达: =SUM(B6:D6) + N(〃区域  1  ,  区域 2 及  区域 3  的总数〃)  



                                      这条语句怎么写  



不保存直接关闭当前的工作簿的VBA 语句及不保存直接关闭EXCEL 窗口(关闭所有的工作簿) 

的VBA 语句  



解答:1、Workbooks(〃BOOK1。XLS〃)。Close SaveChanges:=False  

2 、不保存直接关闭EXCEL 窗口(关闭所有的工作簿) 的VBA 语句:  

Private Sub Workbook_BeforeClose(Cancel As Boolean)  

    Application。DisplayAlerts = False  

    Application。Quit  

End Sub  



                          有没有语法可一次把 textbox 的值全改为  



userform 里有 20 个 textbox 和 2 个 bobox;  有没有语法可一次把 textbox 的值全改为〃〃?  



解答:新增  一个  mandButton1  



Private Sub mandButton1_Click()  



    Dim obj As Object  



                                                                                   444  


…………………………………………………………Page 445……………………………………………………………

                                                                



    For Each obj In Controls  



          If TypeOf obj Is MSforms。TextBox Then  



                obj = 〃〃  



          End If  



    Next obj  



End Sub  



又问:我是要在 userform_initialize 里设定却不想一个一个 textbox 设为〃〃,想请教一下怎样做较 



有效率  



解答:假设您没变更 Textbox 之预设名称,在 Initialize 事件中加入  



   Dim obj As Object  



   For Each obj In Controls  



         If obj。Name Like 〃Textbox*〃 Then   obj = 〃〃  



   Next obj  



                                          怎样用程序删除工作表中的空行  



空行就是表示这行的每一个单元格都是空白的,所以可以判断只要某一特定单元格为空,则删 

除该单元格所在的行,代码如下:  

Sub d()  

For i =  1 To  100  

If Cells(i;  1) = 〃〃 Then  

   Rows(i)。Delete  

End If  

Next  

End Sub  

上面的程序通用性差,遇到数据分布不规则的情况就不适用了,最好改成如下代码:  

' For  100 Rows  

For i =  100 To  1 Step …1  

    If WorksheetFunction。CountA(Rows(i)) = 0 Then  

        Rows(i)。EntireRow。Delete  

    End If  

Next i  



                                                                                                                  445  


…………………………………………………………Page 446……………………………………………………………

                                                            



                      有没有函数可以直接查找某列(行)数据中是否包括某单值  



解答: 用 match() 和 countif() 都可以。如在 A                            列中查找是否有  10                  存在,公式: 

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