找回密码
 立即注册
搜索

vba代码换行的方法

2
回复
1138
查看
[复制链接]

6

主题

7

帖子

58

幻币

江湖少侠

Rank: 2

积分
156
QQ
2017-10-29 02:48:34 显示全部楼层 |阅读模式
        有的时候,在使用VBA编写办公自动化功能的时候,单使用一行代码来写,可能会让单行的代码长度太长,不利于书写上的观察与修改。
  因此,在遇到这种问题的时候,常常需要将同一行的比较长的VBA代码进行换行,同时,还要保证,换行之后,多行的代码功能如同一行代码一样,在语法和功能上,不出任何问题。
  VBA代码的换行方法为:
  空格_回车
  下面我们以具体的示例来诠释换行是如何实现的。
  ActiveWindow.Selection.ShapeRange.TextFrame.TextRange.Characters(Start:=1, Length:=0).Select
  With ActiveWindow.Selection.TextRange
.Text = "大众计算机学习网"
With .Font
.NameAscii = "Arial"
.NameFarEast = "宋体"
.NameOther = "Arial"
.Size = 18
.Bold = msoFalse
.Italic = msoFalse
.Underline = msoFalse
.Shadow = msoFalse
.Emboss = msoFalse
.BaselineOffset = 0
.AutoRotateNumbers = msoFalse
.Color.SchemeColor = ppForeground
   End With
   End With
  比如,上面的这段代码,我们要对第一行进行换行,如何书写呢?可将第一行书写为如下:
  ActiveWindow.Selection.ShapeRange.TextFrame.TextRange _
.Characters(Start:=1, Length:=0).Select
  看到了吧,先在TextRange之后按下空格键,然后再输入_符号,最后再按下回车键,如此一来,
  .Characters(Start:=1, Length:=0).Select就变成另外一行了,但是,该行却与上一行属于同一行,在语法与功能上等同于单行。
  为方便您的学习,我们再看一段代码好了。
  未换行的代码段为:
  ActiveWindow.Selection.SlideRange.Shapes("Text Box 4").Select
  ActiveWindow.Selection.ShapeRange.TextFrame.TextRange.Select
  ActiveWindow.Selection.ShapeRange.TextFrame.TextRange.Characters(Start:=1, Length:=8).Select
  With ActiveWindow.Selection.TextRange.Font
.NameAscii = "华文细黑"
.NameOther = "华文细黑"
.NameFarEast = "宋体"
.Size = 32
.Bold = msoTrue
.Italic = msoFalse
.Underline = msoFalse
.Shadow = msoFalse
.Emboss = msoTrue
.BaselineOffset = 0
.AutoRotateNumbers = msoFalse
.Color.SchemeColor = ppForeground
  End With
  换行之后的代码如下,我们仅对第三行换行,其它行不换。
  ActiveWindow.Selection.SlideRange.Shapes("Text Box 4").Select
  ActiveWindow.Selection.ShapeRange.TextFrame.TextRange.Select
  ActiveWindow.Selection.ShapeRange.TextFrame.TextRange. _
  Characters(Start:=1, Length:=8).Select
  With ActiveWindow.Selection.TextRange.Font
.NameAscii = "华文细黑"
.NameOther = "华文细黑"
.NameFarEast = "宋体"
.Size = 32
.Bold = msoTrue
.Italic = msoFalse
.Underline = msoFalse
.Shadow = msoFalse
.Emboss = msoTrue
.BaselineOffset = 0
.AutoRotateNumbers = msoFalse
.Color.SchemeColor = ppForeground
  End With

PPT学习论坛
回复

使用道具 举报

2

主题

9

帖子

90

幻币

一流武者

Rank: 3Rank: 3

积分
258
QQ
2017-10-30 14:54:38 显示全部楼层
我卷了~~~~~~~  
PPT学习论坛
回复 支持 反对

使用道具 举报

1

主题

7

帖子

92

幻币

一流武者

Rank: 3Rank: 3

积分
270
QQ
2017-11-2 17:35:30 显示全部楼层
不错啊! 一个字牛啊!
PPT学习论坛
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册