当前位置: 首页 > news >正文

建设网站个人简介范文嵌入式培训班一般多少钱

建设网站个人简介范文,嵌入式培训班一般多少钱,下一页word,飞沐网站建设北京Office自带的VBE在编辑代码时,没有自动完成代码缩进的功能,而我们在网上找到的VBA代码,经常没有实现良好的自动缩进,复制到VBE后,可读性较差。本文介绍的宏,通过使用vbscript.regexp对象,利用正…

Office自带的VBE在编辑代码时,没有自动完成代码缩进的功能,而我们在网上找到的VBA代码,经常没有实现良好的自动缩进,复制到VBE后,可读性较差。本文介绍的宏,通过使用vbscript.regexp对象,利用正则表达式匹配VBA 代码块中开始和结束关键字,完成缩进量的计算,从而实现VBA代码的格式化。
要使用vbscript.regexp对象,需要用过VBE的“工具”菜单的“引用”命令引入Microsoft VBScript Regular Expressions 5.5这个库。引入这个库后,我们构筑三个正则表达式,分别匹配VBA代码块的开始记号、结束记号及中继记号。例如一个If-Else-End If代码块,If就是这个代码块的开始记号,遇到了开始记号,下面的行就需要增加一个缩进单位;Else就是这个代码块的中继记号,遇到中继记号,不影响后续行的缩进,但本行的缩进需要减少一个单位;End If就是这个代码块的结束记号,遇到结束记号,本行和后续各行的缩进量就要减少一个单位。此外还有一个特殊情况,就是换行连接符“_”,其后续第一行也宜增加一个缩进量,如果下一行仍然太长被分行,则再下面一行不用继续增加缩进。
宏代码如下,运行宏前需先选择复制到Word文档中的整个代码块。如果所选择的代码中包含的所有代码块结构完整,则所选择的代码块被替换为缩进规范的代码。如运行宏后发现代码缩进不正确,则代码中肯定有错误,存在结构不完整的代码块。

Sub VBA代码缩进()Dim aPara As ParagraphDim CumulativeIndent As Integer, currParaIndent%, i%Dim sTmp As String, sResult$Dim regRight As RegExp, regLeft As RegExp, regMiddle As RegExpSet regRight = CreateObject("vbscript.regexp")Set regLeft = CreateObject("vbscript.regexp")Set regMiddle = CreateObject("vbscript.regexp")'regLeft匹配需要增加后续段落左缩进的段落,即段落开头为代码块开始记号的段落regLeft.Pattern = "^(for|while|if|#if|with|do|select|((public|private)\s+)*(sub|function))\s"regLeft.IgnoreCase = True'regRight匹配需要减少本段及后续段落左缩进的段落,即段落开头为代码块结束记号的段落regRight.Pattern = "^(end\s|#end\s|loop|next|wend)"regRight.IgnoreCase = True'regMiddle匹配对前后段落缩进没有影响,但需要减少本段左缩进的段落,即段落开头为中继记号的段落regMiddle.Pattern = "^(elseif|else|#elseif|#else|case)\s"regMiddle.IgnoreCase = True'将所选择的代码原有不规范的缩进全部删除,即替换掉各段前导空格或制表符(^t),以免影响最终缩进With Selection.Find.MatchWildcards = True.Execute FindText:="^13[ ^t]{1,}", _ReplaceWith:="^p", Replace:=wdReplaceAllEnd With'记录一行代码前累计需添加的缩进量CumulativeIndent = 0For Each aPara In Selection.Paragraphs'将当前段落文本读入临时字符串,去掉前后空白sTmp = Trim(aPara.Range.Text)'计算缩进量'遇到代码块开始记号,左缩进增加1(注意本段增加的缩进后面需要减掉)If regLeft.test(sTmp) ThenCumulativeIndent = CumulativeIndent + 1'遇到代码块结束记号,左缩进减少1ElseIf regRight.test(sTmp) ThenCumulativeIndent = CumulativeIndent - 1End If'计算本段的段落缩进,如果本段为代码块开始记号或者是中间记号开头,'需要将本段前面加上的缩进量调整回去If regLeft.test(sTmp) Or regMiddle.test(sTmp) ThencurrParaIndent = CumulativeIndent - 1ElsecurrParaIndent = CumulativeIndentEnd If'根据需要添加的缩进量,在本段文本前添加TAB(Chr(9))For i = 1 To currParaIndentsTmp = Chr(9) & sTmpNext'如果上一行末尾是换行连接符,下一行增加一个TAB进行缩进'由于没有修改CumulativeIndent,所以这个操作不会影响其他行的缩进量 If Right(sResult, 1) = "_" ThensTmp = Chr(9) & sTmpEnd If'将添加了TAB的字符串拼接到结果字符串中sResult = sResult & sTmpNextSelection.Text = sResult
End Sub
http://www.dinnco.com/news/26728.html

相关文章:

  • 展示型网站开发我想在百度上做广告怎么做
  • 武汉网站建设易天时代域名注册流程
  • 网上商城购物系统er图整站seo优化哪家好
  • 外管局网站先支后收怎么做报告免费网站推广产品
  • 该网站正在紧急升级维护中无锡网站制作推广
  • 资中做网站多少钱李勇seo的博客
  • 南昌的网站设计内蒙古网站seo
  • 学习java可以做网站吗株洲网站设计外包首选
  • 现在是用什么软件做网站在线生成个人网站免费
  • 做网站建设推荐今日最新头条新闻条
  • 网站后台功能技术要求谷歌推广哪家公司好
  • 公司网站管理制定的作用seo个人博客
  • 如何区分网站开发语言网站外链发布平台
  • 11108给换成119333做网站福州短视频seo服务
  • 上海网络营销网站建设怎么做优化关键词
  • linux搭建个人网站营销策略从哪几个方面分析
  • 爬虫做网站相关教程惠州seo报价
  • 一个购物网站多少钱免费做网站网站
  • 做网站标语网站优化招聘
  • 网站怎么做语言切换济南seo网站关键词排名
  • 互联网金融网站建设推广软文发布平台
  • 明空网络做网站好不好百度100%秒收录
  • wordpress哪个版本php青岛谷歌优化
  • 青岛网站优化联系方式seo常见的优化技术
  • 专业网站建设效果显著淘宝关键词排名优化
  • 网站绿色色调设计百度快速排名软件原理
  • net网站开发实例武汉网站运营专业乐云seo
  • 女同性怎么做的视频网站今日新闻联播
  • 中央人民政府网网址seo顾问培训
  • 网站建设河南图片识别搜索引擎