实用excel宏代码(精华版)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
非常实用excel宏代码
代码功能包含:
显示所有隐藏工作表,按指定列拆分工作表,将一个工作簿内的多个工作表拆分为一个个独立的工作簿,在工作簿打开的状态下直接重命名活动工作簿,工作表保护密码破解,一次性关闭所有工作簿,将所选单元格数值单位转换为万显示,一次性提取所有工作表名称等
--------------------------------------------------
Sub 显示所有隐藏工作表()
For Each St In Sheets
If St.Visible = False Then St.Visible = True Next
End Sub
-------------------------------------------
Sub 按指定列拆分工作表()
Dim i%, m%, h$
h =
Range("a1").Select
m = InputBox("请输入列数")
Columns(m).Copy
Worksheets.Add After:=Sheets(Sheets.Count)
= "B"
Range("A1").Select
ActiveSheet.Paste
Range("A:A").RemoveDuplicates (1)
Sheets("B").Visible = False
For i = 2 To Application.WorksheetFunction.CountA(Sheets("B").Range(" A:A"))
Sheets(h).Activate
edRange.AutoFilter Field:=m, Criteria1:=Sheets("B").Cells(i, 1)
Sheets(h).UsedRange.Copy
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Paste
= Sheets("B").Cells(i, 1)
Sheets(h).Select
Next
Selection.AutoFilter
Application.DisplayAlerts = False
Sheets("B").Delete
Application.DisplayAlerts = True
End Sub
----------------------------------------
Sub 重命名活动工作簿()
'如果利用DIR提取的活动工作簿的名称长度为0(即未保存),那么提示用户,然后退出程序
If Len(Dir(ActiveWorkbook.FullName)) = 0 Then MsgBox "请先保存工作簿", vbOKOnly, "友情提示": Exit Sub Dim 原名称As String, 新名称As String, 后缀名As String, 路径As String '声明变量原名称= '提取活动工作簿名称
后缀名= StrReverse(Mid(StrReverse(原名称), 1, InStr(StrReverse(原名称), "."))) '提取活动工作簿的后缀名
新名称= Application.InputBox("请输入文件名", "新名称", Replace(原名称, 后缀名, ""), , , , , 2) '弹出输入框让用户输入新的名称
If 新名称= "False" Then End '如果选择了取消键则结束过程
路径= Replace(ActiveWorkbook.FullName, 原名称, "") '提取活动工作簿的路径
On Error Resume Next '当有错误时继续执行
MkDir "C:\" & 新名称'在C盘创建一个同名的文件夹(测试字符串能否作为文件名称)
If Err <> 0 Then '如果有错误
MsgBox "您输入的字符不允许作为文件名,请重新输入!", vbOKOnly, "友情提示" '提示Else
'否则
RmDir "C:\" & 新名称'删除创建的文件夹
ActiveWorkbook.SaveAs 路径& 新名称& 后缀名'将活动工作簿另存为指定的名称(与原文件相同路径下)
Kill 路径& 原名称'删除原来的文件
End If
End Sub
---------------------------------------------------
Public Sub 工作表保护密码破解()
Const DBLSPACE As String = vbNewLine & vbNewLine Const AUTHORS As String = DBLSPACE & vbNewLine & _ "作者:McCormick JE McGimpsey "
Const HEADER As String = "工作表保护密码破解"
Const VERSION As String = DBLSPACE & "版本Version 1.1.1"
Const REPBACK As String = DBLSPACE & ""
Const ZHENGLI As String = DBLSPACE & " hfhzi3—戊冥整理"
Const ALLCLEAR As String = DBLSPACE & "该工作簿中的工作表密码保护已全部解除!!" & DBLSPACE & "请记得另保存" _
& DBLSPACE & "注意:不要用在不当地方,要尊重他人的劳动成果!"
Const MSGNOPWORDS1 As String = "该文件工作表中没有加密"
Const MSGNOPWORDS2 As String = "该文件工作表中没有加密2"
Const MSGTAKETIME As String = "解密需花费一定时间,请耐心等候!" & DBLSPACE & "按确定开始破解!"
Const MSGPWORDFOUND1 As String = "密码重新组合为:"