excell教程第二个表格的宏怎么定义

查看: 6550|回复: 2|
在线时间30 小时经验71 威望0 性别男最后登录注册时间阅读权限20UID491894积分71帖子精华0分享0
EH初级, 积分 71, 距离下一级还需 279 积分
积分排行3000+帖子精华0微积分0
我在word中做了两个宏,一个是选择文档中所有的表格,第二个是将选中的表格套用定义好的表格格式,但是我首先运行第一个宏后,再运行第二个宏时有报错。但是单独选择一个表格运行第二个宏却可以运行,请各位大虾帮忙看下。我的表格格式是字体五号,中文宋体西文Times New Roman,段落单倍行距,段前段后都是0,根据窗口调整表格,水平和垂直都是居中。下面是我的两个宏的代码。
Sub 选择表格()
Dim temptable As Table
Application.ScreenUpdating = False
'判断文档是否被保护
If ActiveDocument.ProtectionType = wdAllowOnlyFormFields Then
&&MsgBox &文档已保护,此时不能选中多个表格&
'删除所有可编辑的区域 预防性删除
ActiveDocument.DeleteAllEditableRanges wdEditorEveryone
'添加可编辑区域
For Each temptable In ActiveDocument.Tables
temptable.Range.Editors.Add wdEditorEveryone
'选中所有可编辑的区域
ActiveDocument.SelectAllEditableRanges wdEditorEveryone
'删除所有可编辑的区域
ActiveDocument.DeleteAllEditableRanges wdEditorEveryone
Application.ScreenUpdating = True
Sub 表格格式()
' 表格格式 Macro
由 wangyunke 录制
& & With Selection.Font
& && &&&.NameFarEast = &宋体&
& && &&&.NameAscii = &Times New Roman&
& && &&&.NameOther = &Times New Roman&
& && &&&.Name = &&
& && &&&.Size = 10.5
& && &&&.Bold = False
& && &&&.Italic = False
& && &&&.Color = wdColorAutomatic
& & End With
& & With Selection.ParagraphFormat
& && &&&.LeftIndent = CentimetersToPoints(0)
& && &&&.RightIndent = CentimetersToPoints(0)
& && &&&.SpaceBefore = 0
& && &&&.SpaceBeforeAuto = False
& && &&&.SpaceAfter = 0
& && &&&.SpaceAfterAuto = False
& && &&&.LineSpacingRule = wdLineSpaceSingle
& && &&&.FirstLineIndent = CentimetersToPoints(0)
& && &&&.CharacterUnitLeftIndent = 0
& && &&&.CharacterUnitRightIndent = 0
& && &&&.CharacterUnitFirstLineIndent = 0
& && &&&.LineUnitBefore = 0
& && &&&.LineUnitAfter = 0
& && &&&.WordWrap = True
& & End With
& & Selection.Tables(1).AutoFitBehavior (wdAutoFitWindow)
& & Selection.Tables(1).AutoFitBehavior (wdAutoFitWindow)
& & Selection.Tables(1).Rows.Alignment = wdAlignRowCenter
& & Selection.Rows.AllowBreakAcrossPages = True
& & Selection.Cells.VerticalAlignment = wdCellAlignVerticalCenter
运行第一个后再运行第二个报错的是“Selection.Rows.AllowBreakAcrossPages = True”这句
猜你喜欢看
在线时间901 小时经验15007 威望29 性别男最后登录注册时间阅读权限100UID12381积分21107帖子精华22分享0
积分排行12帖子精华22微积分0
你这是多此一举了!
哪有使用宏全选表格后,再运行对所选表格进行格式设置的,逻辑思路不对。出现错误是所选内容为多个表格时,Word无法实现跨页断行所致。
请按以下代码进行:
Sub Example()
& & Dim oTable As Table
& & If ActiveDocument.ProtectionType && wdNoProtection Then Exit Sub
& & Application.ScreenUpdating = False
& & For Each oTable In ActiveDocument.Tables
& && &&&oTable.Select
& && &&&Call 表格格式
& & Application.ScreenUpdating = True
Sub 表格格式()
' 表格格式 Macro
由 wangyunke 录制
& & With Selection.Font
& && &&&.NameFarEast = &宋体&
& && &&&.NameAscii = &Times New Roman&
& && &&&.NameOther = &Times New Roman&
& && &&&.Name = &&
& && &&&.Size = 10.5
& && &&&.Bold = False
& && &&&.Italic = False
& && &&&.Color = wdColorAutomatic
& & End With
& & With Selection.ParagraphFormat
& && &&&.LeftIndent = CentimetersToPoints(0)
& && &&&.RightIndent = CentimetersToPoints(0)
& && &&&.SpaceBefore = 0
& && &&&.SpaceBeforeAuto = False
& && &&&.SpaceAfter = 0
& && &&&.SpaceAfterAuto = False
& && &&&.LineSpacingRule = wdLineSpaceSingle
& && &&&.FirstLineIndent = CentimetersToPoints(0)
& && &&&.CharacterUnitLeftIndent = 0
& && &&&.CharacterUnitRightIndent = 0
& && &&&.CharacterUnitFirstLineIndent = 0
& && &&&.LineUnitBefore = 0
& && &&&.LineUnitAfter = 0
& && &&&.WordWrap = True
& & End With
& & Selection.Tables(1).AutoFitBehavior (wdAutoFitWindow)
& & Selection.Tables(1).AutoFitBehavior (wdAutoFitWindow)
& & Selection.Tables(1).Rows.Alignment = wdAlignRowCenter
& & Selection.Rows.AllowBreakAcrossPages = True
& & Selection.Cells.VerticalAlignment = wdCellAlignVerticalCenter
当然,其中第二个宏,可以更简化一些,楼主可以自己琢磨一下,使用表格和Range对象,而不必使用Selection对象。
在线时间30 小时经验71 威望0 性别男最后登录注册时间阅读权限20UID491894积分71帖子精华0分享0
EH初级, 积分 71, 距离下一级还需 279 积分
积分排行3000+帖子精华0微积分0
我经常要对长篇的word文档排版,所有表格都要用统一的格式,所以想用两个宏来完成。我按照大哥说的改了代码,可是执行后没有效果啊!不过还是谢谢大哥了。
积分≥4700即可申请
关注我们,与您相约微信公众平台!
Copyright 1999 - 2017 Excel Home. All Rights Reserved.本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!
Powered by
本站特聘法律顾问:徐怀玉律师 李志群律师 &&查看: 7003|回复: 8|
在线时间12 小时经验6 威望0 性别女最后登录注册时间阅读权限10UID1607050积分11帖子精华0分享0
EH新人, 积分 11, 距离下一级还需 9 积分
积分排行3000+帖子精华0微积分0
本帖最后由 铭论 于
10:48 编辑
如何将第一个表格中计算式的结果出现在第二个表格中? 例如:A1表格中输入“5*3+5*6”& & 这个计算式的结果需要出现在B1中,最重要的是当变动A1中的数据时,B1中的结果也要随之变动
&&你好,我再问一下,是不是出现这样的,每个都要重新写函数。。如果a2,a3,a4中也有计算式,b2,b3,b4中得出结果,能不能选中b1表格往下拉复制函数式子呢?
在线时间514 小时经验1136 威望0 性别男最后登录注册时间阅读权限50UID1798607积分1136帖子精华0分享0
EH高级, 积分 1136, 距离下一级还需 864 积分
积分排行950帖子精华0微积分0
上个附件吧,楼主的问题感觉很简单,让人不敢相信,是不是还有别的没说明白
我用EXCEL2007
在线时间13 小时经验4 威望0 最后登录注册时间阅读权限10UID1816107积分4帖子精华0分享0
EH新人, 积分 4, 距离下一级还需 16 积分
积分排行3000+帖子精华0微积分0
问题不明,到底是一张表还是两张表???
在线时间12 小时经验6 威望0 性别女最后登录注册时间阅读权限10UID1607050积分11帖子精华0分享0
EH新人, 积分 11, 距离下一级还需 9 积分
积分排行3000+帖子精华0微积分0
既然已经就索性 发表于
上个附件吧,楼主的问题感觉很简单,让人不敢相信,是不是还有别的没说明白
我就想A1中输上5*3+5*6& & b1中的结果为45& &当a1中改为5*4+5*8 时,b1中的结果就自动改为60
在线时间12 小时经验6 威望0 性别女最后登录注册时间阅读权限10UID1607050积分11帖子精华0分享0
EH新人, 积分 11, 距离下一级还需 9 积分
积分排行3000+帖子精华0微积分0
铭论 发表于
我就想A1中输上5*3+5*6& & b1中的结果为45& &当a1中改为5*4+5*8 时,b1中的结果就自动改为60
但我就是不知道在B1中如何写等式
在线时间432 小时经验5631 威望3 性别男最后登录注册时间阅读权限95UID4561积分6331帖子精华0分享0
积分排行141帖子精华0微积分0
用宏表函数:EVALUATE
插入,名称,定义,名称处输入CAL
引用位置:=EVALUATE(Sheet1!$A$1)复制代码确定后,在B1输入:=CAL
相关操作在windowsXP+OFFICE 2003下测试通过。
数据公式需按Ctrl、Shift、Enter三键结束。
点右下角评分可以送花哈
在线时间432 小时经验5631 威望3 性别男最后登录注册时间阅读权限95UID4561积分6331帖子精华0分享0
积分排行141帖子精华0微积分0
楼主把单元格说成表格了
在线时间12 小时经验6 威望0 性别女最后登录注册时间阅读权限10UID1607050积分11帖子精华0分享0
EH新人, 积分 11, 距离下一级还需 9 积分
积分排行3000+帖子精华0微积分0
jlhao 发表于
楼主把单元格说成表格了
哦,对,哈哈,不好意思,是单元格
在线时间12 小时经验6 威望0 性别女最后登录注册时间阅读权限10UID1607050积分11帖子精华0分享0
EH新人, 积分 11, 距离下一级还需 9 积分
积分排行3000+帖子精华0微积分0
jlhao 发表于
用宏表函数:EVALUATE
插入,名称,定义,名称处输入CAL
引用位置:确定后,在B1输入:=CAL
OK,太感谢你了,成功了,呵呵
积分≥4700即可申请
金牌优秀会员
金牌优秀会员奖章No.1
优秀会员奖章No.1
关注我们,与您相约微信公众平台!
Copyright 1999 - 2017 Excel Home. All Rights Reserved.本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!
Powered by
本站特聘法律顾问:徐怀玉律师 李志群律师 &&> Excel 工作表的任意单元格中设置页码
Excel 工作表的任意单元格中设置页码163博客
  在Excel中设置第几页共几页,绝大部分人会想道用“页面设置”,但你是否想过将“第N页/总M页”放到任意单元格中?而不仅仅是置于页眉页脚中?
  方法一,用VBA
  Function page()
  page = (ActiveSheet.HPageBreaks.Count + 1) * (ActiveSheet.VPageBreaks.Count + 1)
  Application.Volatile
  End Function
  用VBA本人只知道总页码的方法,当前页码就难倒我了,还请VBA高手指教。
  方法二,用宏表函数与公式
  1. 首先:点CTRL+F3打开定义名称,再在上面输入“纵当页”,在下面引用位置处输入:
  =IF(ISNA(MATCH(ROW(),GET.DOCUMENT(64))),1,MATCH(ROW(),GET.DOCUMENT(64))+1)
  2.然后再继续添加第二个名称:“横当页”,在下面引用位置处输入:
  =IF(ISNA(MATCH(column(),GET.DOCUMENT(65))),1,MATCH(column(),GET.DOCUMENT(65))+1)
  3.再输入“总页”;引用位置处输入:
  =GET.DOCUMENT(50)+RAND()*0
  4.最后再定义“页眉”,引用位置:
  ="第"&IF(横当页=1,纵当页,横当页+纵当页)&"页/共"&总页&"页"
  5.在函数栏使用应用即可得到需要的页码。
  [推荐]&&[分析]
  [IT业界]& [专访]
  [分析]&&[分析]
  [分析]&[评测]
  温馨提示:ZOL软件事业部编辑公共邮箱先已开通,无论您有建议或投稿、咨询,均可发送邮件到,编辑会认真阅读您的每一封来信,并给予您满意的答复。
下载 Accent Excel Password Recovery 请点击:
本软件在办公应用中排名第3位
用户评分:5.2 |
更新时间:日
开发商:未知
下载次数:3086577次
应用平台:Win XP/Win2000/Win98/Win ME
软件分类:
论坛讨论:
&相关阅读:
·调查显示Email仍是工作中的最重要工具
&&·满足工作需要 微软Windows7专业版售845
&&·推工作教育一体化服务 Google开始整合
&&·微软或将收购邮件公司Acompli为其工作
&&·集成Power Query插件 微软Excel新功能
看完本文后的感受:
频道热词:&&&&&&
办公软件排行榜
软件名称下载量
130356884203518226896224161339413295119531171410972
下载周排行榜
软件名称下载量
235557840095991944512432844017134645239352377023449
精美壁纸推荐
美女明星风景动漫手机

我要回帖

更多关于 excell教程 的文章

 

随机推荐