Excel word ppt office使用技巧大全(DOC格式)-第82部分
按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 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 vbDirectory) = vbDirectory Then
Set F = Fs。getfolder(MyPath & MyName)
Sheets(1)。Cells(I; 1) = MyName
Sheets(1)。Cells(I; 2) = F。datecreated
I = I + 1
End If
End If
MyName = Dir
439
…………………………………………………………Page 440……………………………………………………………
Loop
Sheets(1)。Range(〃A1:B〃 & I 1)。Sort _
key1:=Sheets(1)。Range(〃B1〃); _
order1:=xlDescending; _
header:=xlNo
For J = 6 To I 1
Fs。DeleteFolder (MyPath & Sheets(1)。Cells(J; 1))
Next J
为什么我的 EXCEL 右键插入工作表功能没有了
解答:试试以下程式码
Sub Reset()
mandBars(〃Ply〃)。Enabled = True
mandBars(〃Ply〃)。Reset
End Sub
如何使某一个固定的菜单项无效
例:要使 文件…》另存为 命令无效如何写?
解答:
Dim i As Integer
For i = 1 To Application。mandBars(〃File〃)。Controls。Count
If Application。mandBars(〃File〃)。Controls(i)。Caption = 〃另存为(&A)。。。〃 Then
Application。mandBars(〃File〃)。Controls(i)。Enabled = False
End If
Next i
又问:如果是不同版本呢,比如说是中文版和英文版,哪怎样才能通用呢?
解答:改成 Application。mandBars(〃File〃)。Controls(5)。Enabled = False 。中文版和英文版
通用。
如何将菜单内的名字改回默认的名字
Reset。
mandBars(〃My_tool_bar〃)。Controls(1)。Reset
VBA 中自制的弹出式快捷菜单上能用上我任意指定的图标吗
解答:Sub CreateCmdBar()
Dim objBar As mandBar
Dim objctr As mandBarControl
'Begin insert ico
On Error Resume Next
Application。mandBars(〃ico〃)。Delete
On Error GoTo 0
ThisWorkbook。Sheets(〃Sheet1〃)。Shapes(〃pic〃)。Copy
Set objBar = Application。mandBars。Add(〃ico〃; msoBarFloating; False; False)
440
…………………………………………………………Page 441……………………………………………………………
Set objctr = objBar。Controls。Add
With objctr
。PasteFace '将图形 Copy 至按钮上
。Enabled = True
End With
objBar。Visible = True
End Sub
如何将自定义的组合下拉列表框加入自定义工具栏
Sub wswx()
Dim i As mandBar; j As mandBarboBox
Set i = Application。mandBars。Add(〃wswx〃; ; ; True)
i。Visible = True
Set j = i。Controls。Add(msoControlboBox)
With j
。AddItem 〃First Item〃; 1
。AddItem 〃Second Item〃; 2
End With
End Sub
如何真正隐藏多余的行和列(只有有用的部分显示)
用 SHIFT + CTRL +方向箭头,就可以选定区域,再隐藏就达到那种效果了。
EXCEL2K 输入公式只显示公式怎么办
把工具——选项——视图中“公式”前的勾去掉,格式改常规,鼠标定位到公式单元格并按
F2 ,回车。
关于日期的计算
各位高手:我在统计今年 1 月份里有多少个星期二, 用以下公式可以算出是 4 天,
{=SUM((WEEKDAY(DATE(2003;1;ROW(INDIRECT(〃1:31〃))))=3)*1)}=4,但用以下公式统计 1
月 份 里 的 第 5 周 共 有 多 少 天 就 不 能 返 回 值 了 , 请 问 是 为 什 么 呢 ? ,
{=SUM((WEEKNUM(DATE(2003;1;ROW(INDIRECT(〃1:31〃))))=5)*1)}=#value !
解答:weeknum 不能用于数组公式。想解决此问题,可以用常量数组公式,如求 2003 年 11
月 的 第 4 周 有 多