1.显示多个隐藏的工作表
如果你的工作簿里面有多个隐藏的工作表,你需要花很多时间一个一个的显示隐藏的工作表。
下面的代码,可以让你一次显示所有的工作表
Sub UnhideAllWoksheets()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
ws.Visible = xlSheetVisible
Next ws
End Sub
2.隐藏除了活动工作表外的所有工作表
如果你做的报表,希望隐藏除了报表工作表以外的所有工作表,则可以用一下代码来实现:
Sub HideAllExcetActiveSheet()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> ActiveSheet.Name Then
ws.Visible = xlSheetHidden
End if
Next ws
End Sub
3.用VBA代码按字母的顺序对工作表进行排序
如果你有一个包含多个工作表的工作簿,并且希望按字母对工作表进行排序,那么下面的代码,可以派上用场。
Sub SortSheetsTabName()
Application.ScreenUpdating = False
Dim ShCount As Integer, i As Integer, j As Integer
ShCount = Sheets.Count
For i = 1 To ShCount - 1
For j = i + 1 To ShCount
If Sheets(j).Name < Sheets(i).Name Then
Sheets(j).Move before:=Sheets(i)
End If
Next j
Next i
Application.ScreenUpdating = True
End Sub
4.一次性保护所有的工作表
如果工作薄里面有多个工作表,并且希望保护所有的工作表,那么下面的代码,可以派上用场。
Sub ProtectAllSheets()
Dim ws As Worksheet
Dim password As String
'用你想要的密码替换Test123
password = "Test123"
For Each ws In Worksheets
ws.Protect password:=password
Next ws
End Sub
5.一次性取消所有的工作表保护
如果你保护了你所有的工作表,那么你只需要修改一下代码,就可以取消所有工作表的保护。
Sub ProtectAllSheets()
Dim ws As Worksheet
Dim password As String
'用你想要的密码替换Test123
password = "Test123"
For Each ws In Worksheets
ws.Unprotect password:=password
Next ws
End Sub
需要注意的是,取消保护工作表的密码, 要与锁定工作表的密码相同,否则程序会抛出异常(出错)。
6.显示所有隐藏的行和列
下面的代码,可以取消所有隐藏的行和列。
如果你从别人那里获得一个Excel文件,并希望没有隐藏的行与列,那么下面的代码对你非常有用。
Sub UnhideRowsColumns()
Columns.EntireColumn.Hidden = False
Rows.EntireRow.Hidden = False
End Sub
7.取消所有的合并单元格
把多个单元格合并成一个单元格时常用的做法:
如果你的工作表里面有合并的单元格,使用下面代码可以一次性取消所有合并的单元格。
Sub UnmergeAllCells()
ActiveSheet.Cells.UnMerge
End Sub
8.保存带有时间戳的工作簿
很多时候,您可能需要创建工作的各个版本。
一个好的做法,就是在工作薄名称上,加上时间戳。
使用时间戳将允许您返回到某个文件,查看进行了哪些更改或使用了哪些数据。
下面的代码会自动保存工作簿在指定的文件夹中,并添加一个时间戳时保存。
Sub SaveWorkbookWithTimeStamp()
Dim timestamp As String
timestamp = Format(Date, "dd-mm-yyyy") & "_" & Format(Time, "hh-ss") ThisWorkbook.SaveAs "C:UsersUsernameDesktopWorkbookName" & timestamp
End Sub
C:UsersUsernameDesktopWorkbookName 你可以制定文件位置和文件名。
"dd-mm-yyyy"指的的日期的格式。
"hh-ss"指的是时间的格式
9.将工作表另存为一个PDF文件
如果您使用不同年份或部门或产品的数据,可能需要将不同的工作表保存为PDF文件。
如果手动完成,这可能是一个耗时的过程,但vba确可以加快速度。
下面是一个将每个工作表保存为单独PDF的VBA代码
Sub SaveWorkshetAsPDF()
Dim ws As Worksheet
For Each ws In Worksheets
ws.ExportAsFixedFormat xlTypePDF, "C:UsersSumitDesktopTest" & ws.Name & ".pdf"
Next ws
End Sub
在上面的代码中,我指定了要保存pdf的文件夹位置的地址。
请注意,此代码仅适用于工作表。
10.将工作簿另存为单独的PDF文件
下面是将整个工作簿保存为指定文件夹中的PDF格式的代码
Sub SaveWorkshetAsPDF()
ThisWorkbook.ExportAsFixedFormat xlTypePDF, "C:UsersSumitDesktopTest" & ThisWorkbook.Name & ".pdf"
End Sub
你可以修改储存文件的文件件。
注意:9~10代码保存为PDF文件,需要在工作表里面设置好打印的区域。如果有空的工作表,那么程序会报错。
这代码用得着保留吗? 直接录制宏都会自动生成,稍微修改下就行。
1-5呢?
计划更新30个有用的vba代码。
计划更新30个有用的vba代码。
我有个表格是一个单元格一级路径,一级路径下有4个二级路径,二级路径下又各有4个三级路径,一直到五级路径!有什么办法让1-5级合并成一个完整路径
有没有,多个工作薄,每个工作薄中三个工作表各独立汇总,不要复制标题行
才5个啊,还有25个呢?