按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
关闭此文件,然后加载刚保存的加载宏。打开一个文件试试。
在类模块中的其他事件中加入代码试试,可以看到这个加载宏响应所有文件的事件!
把公式排整齐
公式太长,尤其当使用了许多函数,括号一层迭一层时,公式便会变得难以理解。你可以在适
当位置按<Alt >+ <Enter >来插入分列符号,甚至加进空格,把公式排得整整齐齐。
寻找特定档案并以对应的软件开启
可否在 excel 中输入一个 档名,excel 会到预定 path 下的 folder 找出该案并开启呢?
436
…………………………………………………………Page 437……………………………………………………………
解答 1:如果知道具体位置,可这样:
Sub Find_WorkBook()
Dim wb As Workbook
Dim String1; String2; Message; Title; Default As String
Default = 〃WindRider〃
Title = 〃Find WorkBook〃
String1 = InputBox(Message; Title; Default)
String2 = Application。ActiveWorkbook。Path
Set wb = Workbooks。Open(String2 & 〃” & String1 & 〃。xls〃; False; False)
End Sub
解答 2:如果只知道文档会在某个 path 下,但实际位置要 search,可这样:
Sub Find_WorkBook()
On Error Resume Next
Dim wb As Workbook
Dim String1; String2; Message; Title; Default As String
Default = 〃OnKey〃
Title = 〃Find WorkBook〃
String1 = InputBox(Message; Title; Default)
If String1 = 〃〃 Then
Exit Sub
End If
With Application。FileSearch
。NewSearch
。LookIn = 〃E:Autos〃
。MatchTextExactly = True
。FileType = msoFileTypeExcelWorkbooks
。SearchSubFolders = True
。Filename = Trim(String1) & 〃。xls〃
If 。Execute() 》 0 Then
String2 = 。FoundFiles(1)
Set wb = Workbooks。Open(String2; False; False)
Else
MsgBox (〃File No Found!〃)
Exit Sub
End If
End With
End Sub
('Default = 〃OnKey〃 是设定输入对话方块的预设值。'FoundFiles(1)可能发现很多个相同名称
的文件,但我要打开的是第一个发现的文件。'改成 FileType = msoFileTypeAllFiles。)
又问:如何根据找到的档案以相关的程式开启呢?
答:ActiveWorkbook。FollowHyperlink 。FoundFiles(1)
437
…………………………………………………………Page 438……………………………………………………………
如何将文件中的某一类控件全部删除
我的文件中有各种各样的控件,我希望将所有工作表中某一类控件(如 mandbutton,包
括隐藏的控件)全部删除,程序怎么编?
解答:Sub Dtlshtbtn()
For Each sht In ActiveWorkbook。Sheets
For Each BtnObj In sht。OLEObjects
If Left(BtnObj。Name; 13) = 〃mandButton〃 Then
BtnObj。Delete
End If
Next BtnObj
Next sht
End Sub
又问:我的控件的 name 已改过(初期设计时未注意规范),不能保证前几位是相同的,有什
么办法判断?
解答:改一下即可
Sub Dtlshtbtn()
For Each sht In ActiveWorkbook。Sheets
For Each btnobj In sht。OLEObjects
If Left(btnobj。ProgId; 19) = 〃Forms。mandButton〃 Then
btnobj。Delete
End If
Next btnobj
Next sht
End Sub
如何列出工具栏快显菜单和单元格右键菜单
1、 列出工作表标签按右键出现的〃快显功能表〃
2、 Sub test()
3、 k = Application。mandBars(〃Ply〃)。Controls。Count
4、 For i = 1 To k
5、 MsgBox 〃Id:〃 & i & Chr(13) &
Application。mandBars(〃Ply〃)。Controls(i)。Caption
6、 Next i
7、 End Sub
8、 列出工具栏快显菜单
9、 Sub ListShortCutMenus()
10、 Cells。Clear
11、 Application。ScreenUpdating = False
12、 Row = 1
13、 For Each cbar In mandBars
14、 If cbar。Type = msoBarTypePopup Then
15、 Cells(Row; 1) = cbar。Index
438
…………………………………………………………Page 439……………………………………………………………
16、 Cells(Row; 2) = cbar。Name
17、 For col = 1 To cbar。Controls。Count
18、 Cells(Row; col + 2) = _
19、 cbar。Controls(col)。Caption
20、 Next col
21、 Row = Row + 1
22、 End If
23、 Next cbar
24、 Cells。EntireColumn。AutoFit
25、 End Sub
26 、
27、 列出单元格右键菜单
28、 Sub ListCellControls()
29、 k = Application。mandBars(〃Cell〃)。Controls。Count
30、 For i = 1 To k
31、 Cells(i; 1) = i 'ID
32、 Cells(i; 2) = Application。mandBars(〃Cell〃)。Controls(i)。Caption
33、 Next i
34、 End Sub
如何删除目录及文件
设 D:ab下有 a。。。。。z 等 5 个以上的子目录,目录下有文件,我想保留最后建立的 5 个子目录,
其余的全部删除,。请各位帮忙,谢谢!
解答:Dim MyPath; MyName As String
Dim I; J As Integer
Dim Fs As Object
Dim F
MyPath = 〃D:ab”
MyName = Dir(MyPath; vbDirectory)
Set Fs = CreateObject(〃Scripting。FileSystemObject〃)
Sheets(1)。Cells(1; 1)。CurrentRegion。Clear
I = 1
Do While MyName 〃〃
If MyName 〃。〃 And MyName 〃。。〃 Then
If (GetAttr(MyPath & MyName) And vbDirec