3.单击确定,退出页面设置对话框。
1. 引言
在日常的WPS文字二次开发中,经常会涉及到操作页眉和页脚的情况。如:添加、删除、修改页眉和页脚中的文字、图形和图像等,
本文通过WPS文字提供的二次开发接口,以WPS为基础,同时兼顾Word来介绍其中的用法。
注意:WPS虽然与Word非常相似,但也有自身的一些特点。
2. 简介
设置页眉和页脚时,可能会涉及到与页面设置和域的知识。影响到页眉和页脚的设置如下图:
2.1. 节、页面设置、页码域
节:通常以为文档的下一个对象是节(即Application-Documents-Sections),页眉和页脚可以在不同的节中进行不同的设置。
页面设置:
奇偶页不同:此功能为方便设置类似于书籍的页眉和页脚,如字典。
首页不同:此功能为方便设置首页为封面而设置。(注:通常封面不显示页码)
域:如果在页眉和页脚中插入了页码域(即,如果你做了如下的操作:插入、页码,这样插入的页码就是一个域,与,在输入page是一样的域),则每页的页码会根据当前所在页而改变。
2.2. 读取页眉和页脚的内容
下面以页眉来介绍,页脚只要将Headers改为Footers即可,其他知识完全一样。
通常的方法是:
ActiveDocument.Sections(1).Headers(wpsHeaderFooterPrimary).Range.Text
注:这里的wpsHeaderFooterPrimary可以取得枚举值及描述如下:
名称 值 描述
wpsHeaderFooterEvenPages 3 返回偶数页上的所有页眉或页脚
wpsHeaderFooterFirstPage 2 返回文档或节中的第一个页眉或页脚
wpsHeaderFooterPrimary 1 返回文档或节中除第一页外所有页上的页眉或页脚
针对页面设置的不同,所以,对读取页眉中的内容细分如下:
2.2.1. 在页面设置中勾选了奇偶页不同
读取偶数页的内容:
ActiveDocument.Sections(1).Headers(wpsHeaderFooterEvenPages).Range.Text
读取奇数页的内容:
可以使用:
ActiveDocument.Sections(1).Headers(wpsHeaderFooterPrimary).Range.Text
注意:
如果页眉中设置了动态的内容,如第*页(*代表是一个根据页码自动更新的数字),则读出的内容:
这里与Word的差异:
1. Word:是根据当前tulaoshi光标的位置而定(如:光标放在第2页,则wdHeaderFooterEvenPages读出的是第2页的页眉内容,如果在第4页,则读出的是第4页的内容,如果光标在第3页,则读出什么有时是2页,有时是4页,规律不细说)。
2. WPS:读取的就是第一个匹配的页眉(如:wpsHeaderFooterEvenPages读的就是第2页的内容;wpsHeaderFooterPrimary则是第1页或者第3页的内容)。
2.2.2. 在页面设置中勾选了首页不同
读取第一页的内容:
ActiveDocument.Sections(1).Headers(wpsHeaderFooterFirstPage).Range.Text
读取除第一页的内容:
ActiveDocument.Sections(1).Headers(wpsHeaderFooterPrimary).Range.Text
2.3. 删除、修改页眉的内容
与上面同理,通常用(其他情况,请参考上面的方法):
ActiveDocument.Sections(1).Headers(wpsHeaderFooterPrimary).Range.Text="KingSoft"
3. 操作页眉中的图形或图像
3.1. 读取页眉中的图形或图像
读取页眉与页脚中的所有图形(不包含嵌入式图片):
ActiveDocument.Sections(1).Headers(wpsHeaderFooterPrimary).Shapes.Count
也可以用:wpsHeaderFooterFirstPage、wpsHeaderFooterEvenPages此处三个读出的结果完全相同。
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/wpsjc/)读取在页面设置中勾选了首页不同中的页眉中的图形(不包含嵌入式图片):
ActiveDocument.Sections(1).Headers(wpsHeaderFooterFirstPage).Range.ShapeRange.Count
其他的偶数页等与其类似。
注意:
大多数情况应该使用.Range.ShapeRange.Count来操作图形。
3.2. 添加一个图形到页眉中且左对齐
注意:
以下代码仅供演示使用,不对可能存在的任何问题负任何责任。
要运行以下代码,必须满足两个文件:
1. 假设有C:tempafter.gif文件;
2. 已经可以切换到页眉与页脚中一次,即已有页眉与页脚信息,即至少有一个回车符,如下图(Word不需要这个条件)。
示例代码1:'添加图片到页眉中的且左对齐
Sub AddPicturetoHeaderToLeft()
Dim myleft, mytop
myleft = ActiveDocument.Sections(1).PageSetup.LeftMargin
mytop = ActiveDocument.Sections(1).PageSetup.HeaderDistance
ActiveDocument.Sections(1).Headers(wpsHeaderFooterPrimary).Shapes.Addpicture _
"C:tempafter.gif", Left:=myleft, Top:=mytop
End Sub
示例代码2:'添加图片到页眉中的且右对齐
Sub AddPicturetoHeaderToRight()
Dim myleft, mytop
Dim tempshape As Shape
mytop = ActiveDocument.Sections(1).PageSetup.HeaderDistance
myleft = ActiveDocument.Sections(1).PageSetup.PageWidth - ActiveDocument.Sections(1).PageSetup.RightMargin
Set tempshape = ActiveDocument.Sections(1).Headers(wpsHeaderFooterPrimary).Shapes.Addpicture _
("C:tempafter.gif", Left:=myleft, Top:=mytop)
tempshape.Left = tempshape.Left - tempshape.Width
End Sub
示例代码3:'添加图片到页眉中的且右对齐
Sub AddPicturetoFooterToLeft()
Dim myleft, mytop
myleft = ActiveDocument.Sections(1).PageSetup.LeftMargin
mytop = ActiveDocument.Sections(1).PageSetup.PageHeight - ActiveDocument.Sections(1).PageSetup.BottomMargin
mytop = mytop + (ActiveDocument.Sections(1).PageSetup.BottomMargin - ActiveDocument.Sections(1).PageSetup.FooterDistance)
mytop = mytop - 11
ActiveDocument.Sections(1).Footers(wpsHeaderFooterPrimary).Shapes.Addpicture _
"C:tempafter.gif", Left:=myleft, Top:=mytop
End Sub
4. 注意事项
1. 如果通过插入、页码的形式插入了一个页码,则从视图、页眉和页脚进入视图时,光标默认会在页码的图文框中,这个可能会影响到用户通过API切换视图来编辑页眉与页脚的情况。
2. 页眉与页脚(包括正文)中插入图形时,ShapeRange的顺序与Shapes的顺序是不一样的。
通常应该使用Shapes来取最后一个插入的图形:
ActiveDocument.Sections(1).Headers(wpsHeaderFooterPrimary).Shapes(ActiveDocument.Sections(1).Headers(wpsHeaderFooterPrimary).Shapes.Count).Select
5. 参考
更多的API操作,请参阅 WPS API 帮助文档。
6. 适用范围
适用于 WPS Office 2009(1705)以上版本
对于这个问题我们自然想到了利用,当你利用工式输入A1=A1+8时,你会得到EXCEL的一个警告:WPS表格不能计算该公式只有自己想办法了,这里介绍一种简单的方法:
第一步: 在想要修改的列(假设为A列)的旁边,插入一个临时的新列(为B列),并在B列的第一个单元格(B1)里输入8。
2、把鼠标放在B1的右下角,待其变成 十字形 并按住 ctrl 住下www.Tulaoshi.com拉直到所需的数据长度,此时B列所有的数据都为8。
3、:在B列上单击鼠标右键,复制 B列。
4、在A列单击鼠标的右键,在弹出的对话框中单击选择性粘贴,在弹出的对话框中选择运算中的你所需要的运算符,在此我们选择加,这是本方法的关键所在。
5、 将B列删除。
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/wpsjc/)怎么样?A列中的每个数据是不是都加上了8呢?同样的办法可以实现对一列(行)的加,减,乘,除,等其它的运算操作。原来表格的格式也没有改变。
在自动化办公中,如果希望在WPS表格中只显示指定的部分区域,其余部分设置为隐藏,则需要多次使用行隐藏和列隐藏命令。作为办公高手,可以用VBA代码将选中的连续区域以外的区域一次性全部隐藏。
第一步,制作文档。
打开WPS表格 2009(在线文档公测版),新建一个空白文档,在一些区域输入数字,作为使用区域。
第二步,点击工具宏创建新宏。
第三步,在Microsoft Visual Basic 中输入或复制下列代码。
Sub HiddenSurroundRange()
Dim CelFirst As Range, CelLast As Range
If Not Selection Is Nothing Then
With Selection
'当前选中区域的第一个单元格
Set CelFirst = .Cells(1)
'当前选中区域的最后一个单元格
Set CelLast = .Cells(.Cells.Count)
End With
If CelFirst.Address "$A$1" Then
'蓝色区域
With Range([a1], CelFirst.Offset(IIf(CelFirst.Row = 1, 0, -1), IIf(CelFirst.Column = 1, 0, -1)))
'如果当前选中区域不包括第一行,则隐藏蓝色区域所在的行
If CelFirst.Row 1 Then .EntireRow.Hidden = True
'如果当前选中区域不包括第一列,则隐藏蓝色区域所在的列
If CelFirst.Column 1 Then .EntireColumn.Hidden = True
End With
End If
If CelLast.Address "$IV$65536" Then
'与上面类似处理绿色区域
With Range(CelLast.Offset(IIf(CelLast.Row = 65536, 0, 1), IIf(CelLast.Column = 256, 0, 1)),
[IV65536])
If CelLast.Row 65536 Then .EntireRow.Hidden = True
If CelLast.Column 256 Then .EntireColumn.Hidden = True
End With
End If
End If
End Sub
第四步,执行视图工具控件工具箱,单击按钮,选择合适的位置插入一个悬浮的隐藏按钮,为它指定HiddenSurroundRange宏。
第五步,选定使用区域,点击隐藏按钮,使用区域以外的区域一次性全部隐藏。
小提示:WPS默认安装没有VBA环境,也无法使用宏功能,若要实现教程所述功能,需要另外安装VBA,WPS office在线文档公测版可以共享文档,只要有邮箱,就可以共享VBA文档,免去寻觅、下载之苦。另外, 由于实例中运用了宏,在打开该文件时要启用宏。