HasDefaultProperties
HasDefaultProperties对象在Excel VBA中表示一个对象是否具有默认属性。例如,Worksheet对象具有默认属性Name,因此当您使用Worksheets.Add方法添加工作表时,该工作表将自动被命名为“SheetX”,其中X为新表的序号。
使用HasDefaultProperty属性,您可以检查对象是否具有默认属性,并决定是否要更改它。这对于创建自定义模板和控制Excel的自动行为非常有用。
以下是3个Excel VBA代码示例,涉及到HasDefaultProperties对象:
1、检查并更改新工作表的名称
Sub AddNewSheet()
Dim newSheet As Worksheet
Set newSheet = ThisWorkbook.Worksheets.Add
If newSheet.HasDefaultName Then
newSheet.Name = "My New Sheet"
End If
End Sub
2、检查工作表是否具有默认列宽
Sub CheckColumnWidth()
Dim sheet As Worksheet
Set sheet = ActiveSheet
If sheet.Columns(1).HasDefaultWidth Then
MsgBox "Column A has default width."
Else
MsgBox "Column A has custom width."
End If
End Sub
3、禁用工作表自动筛选
Sub DisableAutoFilter()
Dim sheet As Worksheet
Set sheet = ActiveSheet
sheet.AutoFilterMode = False
sheet.EnableAutoFilter = False
sheet.EnableSelection = xlNoRestrictions
sheet.ShowAllData
sheet.AutoFilterMode = False
sheet.ListObjects(1).AutoFilter.ShowAllData
If Not sheet.AutoFilter Is Nothing Then
MsgBox "AutoFilter cannot be removed."
End If
End Sub
HeaderFooter
在Excel VBA中,HeaderFooter对象代表工作表或工作簿的页眉和页脚。
HeaderFooter对象有多个属性,可以设置或返回页面上显示的文本、图像和格式。例如,LeftHeader属性可以用于设置或获取页眉左侧的文本,CenterFooter属性可以用于设置或获取页脚中央的文本。
下面是一个示例代码,演示如何使用HeaderFooter对象:
Sub SetHeaderFooter()
Dim ws As Worksheet
Set ws = ActiveSheet
With ws.PageSetup
.LeftHeader = "&D" '日期(例如 2019年8月20日)
.CenterHeader = "Page &P of &N" '页码和总页数
.RightHeader = "&B" '工作簿名称
.LeftFooter = "Confidential" '页脚左侧文本
.RightFooterPicture.FileName = "C:\logo.png" '页脚右侧图片路径
.RightFooterPicture.Height = 30 '页脚右侧图片高度
.RightFooterPicture.Width = 75 '页脚右侧图片宽度
End With
End Sub
此代码将在工作表页眉和页脚中设置日期、页码、工作簿名称、机密文本和图片。请注意,要更改工作簿或具体工作表的页眉和页脚,请选择“页面布局”选项卡并单击“页眉和页脚”按钮。
以下是3个HeaderFooter对象的示例:
1、修改工作表页眉
ActiveSheet.PageSetup.LeftHeader = "My Company Name, Inc."
ActiveSheet.PageSetup.CenterHeader = "Sales Report"
ActiveSheet.PageSetup.RightHeader = "&D"
这个示例将当前活动工作表的左侧页眉设置为“My Company Name, Inc.”,中间页眉设置为“Sales Report”,右侧页眉设置为当前日期。
2、设置工作表页脚的字体大小和颜色
With ActiveSheet.PageSetup
.LeftFooter = "Page &P of &N"
.CenterFooter = "Confidential"
.RightFooter = "Updated on &D"
.FooterMargin = 0
.FooterFont.Name = "Arial"
.FooterFont.Size = 9
.FooterFont.ColorIndex = xlAutomatic
End With
这个示例将当前活动工作表的左侧页脚设置为“Page x of y”(其中x是当前页码,y是总页数),中间页脚设置为“Confidential”,右侧页脚设置为“Updated on xx/xx/xxxx”(其中xx/xx/xxxx是当前日期),并将页脚字体设置为Arial、字号为9、颜色为自动。
3、隐藏工作表页眉
ActiveSheet.PageSetup.DifferentFirstPageHeaderFooter = False
ActiveSheet.PageSetup.OddAndEvenPagesHeaderFooter = False
ActiveSheet.PageSetup.HeaderMargin = 0.5
ActiveSheet.PageSetup.FooterMargin = 0.5
ActiveSheet.PageSetup.CenterHeaderPicture.Filename = ""
这个示例将当前活动工作表的页眉隐藏掉,其中不显示 DifferentFirstPageHeaderFooter、OddAndEvenPagesHeaderFooter 属性,页眉和页脚离上边框和下边框的距离均为0.5英寸,CenterHeaderPicture.Filename设置为空字符串来清空中心页眉的图片。
使用HasDefaultProperties和HeaderFooter对象,需要注意以下几点:
1、HasDefaultProperties属性是只读属性,不能手动设置或更改。如果该属性返回True,则表示对象已经设置了默认属性,否则表示对象还没有设置默认属性。
2、HeaderFooter对象可以用于设置工作表的页眉和页脚。注意,页眉和页脚需要预先设计好,并保存在工作簿的页模板中。如果页模板已经包含页眉和页脚,则可以使用HeaderFooter对象对它们进行修改或者删除。
3、如果当前工作表没有页眉或页脚,则需要使用PageSetup对象的CenterHeader、LeftHeader、RightHeader、CenterFooter、LeftFooter和RightFooter属性创建。
4、为了避免与默认设置冲突,应该在设置页眉和页脚时首先使用HasDefaultProperties属性判断是否已经存在默认设置。
5、要设置具有复杂布局的页眉和页脚,并且包含多个单元格或文本框等对象,则需要使用Shapes对象。例如,可以使用Shapes对象添加图像、形状和文本框到页眉和页脚中。
总之,要使用HasDefaultProperties和HeaderFooter对象,在编写代码之前必须仔细了解其属性和方法,确保正确地设置和修改页眉和页脚,并避免与默认设置冲突。
