VBS基础篇 - 内置函数 - Format 函数
VB中format参数详解
VB中format参数详解vb中Format参数详解Format是一个很常用,却又似乎很烦的方法,本人试图对这个方法的帮助进行一些翻译,让它有一个完整的概貌,以供大家查询之用:首先看它的声明:function Format(const Format: string; const Args: array of const): string; overload;事实上Format方法有两个种形式,另外一种是三个参数的,主要区别在于它是线程安全的,但并不多用,所以这里只对第一个介绍:function Format(const Format: string; const Args: array of const): string; overload;Format参数是一个格式字符串,用于格式化Args里面的值的。
Args又是什么呢,它是一个变体数组,即它里面可以有多个参数,而且每个参数可以不同。
如以下例子:Format('my name is %6s',['wind']);返回后就是my name is wind现在来看Format参数的详细情况:Format里面可以写普通的字符串,比如'my name is'但有些格式指令字符具有特殊意义,比如"%6s"格式指令具有以下的形式:"%" [index ":"] ["-"] [width] ["." prec] type它是以"%"开始,而以type结束,type表示一个具体的类型。
中间是用来格式化type类型的指令字符,是可选的。
先来看看type,type可以是以下字符:d 十制数,表示一个整型值u 和d一样是整型值,但它是无符号的,而如果它对应的值是负的,则返回时是一个2的32次方减去这个绝对值的数如:Format('this is %u',[-2]);返回的是:this is 4294967294f 对应浮点数e 科学表示法,对应整型数和浮点数,比如Format('this is %e',[-2.22]);返回的是:this is -2.22000000000000E+000等一下再说明如果将数的精度缩小g 这个只能对应浮点型,且它会将值中多余的数去掉比如Format('this is %g',[02.200]);返回的是:this is 2.2n 只能对应浮点型,将值转化为号码的形式。
vb中format函数用法
vb中format函数用法一、概述Format函数是Visual Basic(VB)中一个常用的字符串格式化函数,用于将数值、日期等数据类型转换为指定格式的字符串。
在本篇文档中,我们将介绍Format函数的用法,包括函数的基本语法、常用格式选项以及与其他函数的结合使用。
二、基本语法表达式。
Format (format_string , expression)其中,表达式是要格式化的数值或日期等数据类型,format_string是格式化字符串,用于指定输出格式。
三、常用格式选项Format函数支持多种格式选项,用于控制输出字符串的格式。
以下是一些常用的格式选项:1. `#`:用于数字格式化,可指定小数位数、千位分隔符等。
2. `0`:用于整数格式化,可省略小数位数。
3. `@`:用于保留原始数据类型,不进行格式化。
4. `C`:用于日期和时间的格式化,可指定日期/时间的格式。
5. `G`:用于科学计数法格式化,适用于较大的数值。
6. `F`:用于金额的格式化,可指定小数位数和货币符号。
8. `P`:用于百分比格式化,可指定小数位数和百分号符号。
9. `P2`:用于保留两位小数的百分比格式化。
As Double = 123.456789Dim str As String = Format("0.00", num) ' 输出 "123.46"```2. 将日期转换为指定格式的字符串:```vbDim date As Date = #2023/7/18#Dim str As String = Format("yyyy-MM-dd", date) ' 输出 "2023-07-18"```3. 将货币金额转换为指定小数位数的字符串:```vbDim amount As Double = 123456.789Dim str As String = Format("$,0.00", amount) ' 输出 "$123,456.79"(带货币符号和千位分隔符)```五、与其他函数的结合使用Format函数可以与其他VB函数结合使用,实现更复杂的字符串格式化需求。
vb中format函数的用法
vb中format函数的用法VB中的Format函数是一个非常实用的函数,可以用来格式化各种类型的数据。
它可以将数字、日期、字符串等数据转换为特定的格式,以满足不同的需求。
在本文中,我将详细介绍Format函数的用法,并给出一些实际的例子来说明。
我们来看一下Format函数的基本语法:Format(expression, format)expression是要进行格式化的数据项,可以是数字、日期、字符串等。
format是格式化的模式,可以是预定义的格式代码,也可以是自定义的格式字符串。
下面是一些常用的格式代码:- "General Number":默认的数字格式,不带任何特定的格式。
- "Currency":货币格式,会在数字前面加上货币符号,并根据系统的设置显示相应的小数位数。
- "Percent":百分比格式,会将数字乘以100,并在末尾加上百分号。
- "Short Date":短日期格式,以短日期的形式显示,如"2022/1/1"。
- "Long Date":长日期格式,以长日期的形式显示,如"2022年1月1日"。
- "Short Time":短时间格式,以12小时制的时间显示,如"上午10:30"。
- "Long Time":长时间格式,以24小时制的时间显示,如"10:30:00"。
除了以上的预定义格式代码,我们还可以使用自定义的格式字符串来进行格式化。
自定义格式字符串由一系列的格式字符和分隔符组成,用于指定数字、日期和字符串的显示方式。
下面是一些常用的格式字符:- "0":表示数字,如果没有对应的数字,则显示为0。
- "#":表示数字,如果没有对应的数字,则不显示。
VBS的基础教程(常用运算)
VBS的基础教程(常用运算)第一篇(共六篇)我知道菜鸟现在最关心的就是用什么工具来开发VBS程序了, 答案是:记事本(Notepad),我不是开玩笑, 其实任何一种文本编辑器都可以用来开发VBS开发, 只不过记事本是由系统自带的, 比较好找而已. 尽管如此, 我还是建议你去下载一个专业的文本编辑器, 因为这些工具可以提供"语法高亮"等功能, 更加方便开发, 用哪一个随你喜好, 我比较喜欢Edit Plus,ScriptCryptor也不错OK, 我们先来写一个VBScript程序热热身.REM 输入并回显你的名字'使用InputBox和Msgbox函数'(上面及本行可以不必写入源代码中,下面才是运行的代码)Dim name,msgmsg="请输入你的名字:"name=Inputbox(msg)Msgbox name把上面的程序清单输入到记事本里面, 然后保存为以.vbs为扩展名的文件(如果在文件名上没有“.***”,就打开控制面板-文件夹选项-查看-取消隐藏已知文件类型的扩展名).然后双击, 观察运行结果.注意:为了使你学得更好,推荐自己输入程序清单, 尽量不要复制->粘贴我来解释一下这个程序, 第一行和第二行的开头分别是"REM"语句和" ' ", 这两个东西的作用是相同的, 表示之后的文字是注释, 就是说符号后的什么也不干,只是用来说明这段程序的功能, 版权信息等等. 注释行是程序最重要的部分之一, 尽管它不是必需的, 但对于其他人阅读源代码, 以及自己分析源代码是很有好处的. 好的习惯是在必要的地方加上清晰, 简洁的注释.Dim用来声明一个变量, 在VBS中, 变量类型并不是那么重要, 就是说VBS会帮你自动识别变量类型, 而且变量在使用前不一定要先声明, 程序会动态分配变量空间. 在VBS中你不用考虑name储存的是一个整数还是一个小数(学名叫"浮点数"), 也不用考虑是不是字符串(一串字符, 比如:"Hello World"), VBS会自动帮你搞定. 所以第三行语句可以删除, 效果不会变, 但我强烈反对这么做, 一个变量的基本原则就是:先声明,后使用.变量名用字母开头,可以使用下划线,数字, 但不能使用vbs已经定义的字, 比如dim, 也不能是纯数字.下一行被称之为"赋值", "="是赋值符号, 并不是数学中的等于号, 尽管看起来一样.这是正统的理解, 你要理解成等于也没有什么不可. 赋值号的左边是一个变量, 右边是要赋给变量的值, 经过赋值以后, msg这个变量在程序中等同于"请输入你的名字:"这个字符串,但当msg被再次赋值的时候, 原值就会消失. 不光字符串, 其他任何变量都这样被赋值, 例如: a=2, b=12.222等等.再往下,Inputbox和Msgbox是VBS内建的函数, 一个函数就相当于一个"黑箱", 有输入(参数)和输出(返回)值, 你可以不用了解函数是怎么运作的, 只要了解这个函数能干什么就行了, 我们也可以定义自己的函数, 不过那要等到以后再讲. 现在我们只要了解, 一个函数可以有返回值也可以没有, 可以有参数也可以没有. 例如Inputbox就是有返回值的函数, 我们用赋值号左边的变量来"接"住InputBox的返回值--就是你输入的内容. 在inputbox右边的括号里是参数列表, 每个参数用","分隔开, 每个参数有不同的功效, 比如第一个参数会显示在提示里, 我们把msg这个变量作为第一个参数传给了Inputbox 函数, 而msg="请输入你的名字:", 所以我们在对话框的提示栏就会看到"请输入你的名字:" 第二个参数是对话框的标题, 我们用直接量(学名叫"常量", 这里是"字符串常量")传递给函数, 当然你也可以传递变量. Inputbox还有很多参数, 比如你在"名称"后面再加一个","然后输入随便一串字符(字符串,用双引号""包裹起来的一串字符叫做字符串)然后运行, 看看结果. 你会发现用于输入的文本框有了默认的值, 这就是第三个参数的作用.Msgbox函数是用来输出的函数, 在VBS中没有专门的输出函数(BASIC中的print,C中的printf), 所以我们只能用对话框来观察输出结果, Msgbox的必要参数只有一个, 就是要输出的内容, 在这种情况下, 我们不需要理会msgbox 的返回值. 关于Msgbox和Inputbox我们以后还会再讨论, 今天只是热热身, 到此为止.要点:1) 注释(以REM或'开头)行在程序中不起作用, 但能让别人更容易读懂你的程序.2) 变量好像一个盒子, 或一个代号, 可以代表你想代表的东西. 变量赋值使用"="3) 以""包裹起来的字符称之为"字符串"4) 函数像一个"黑箱", 有参数和返回值, 用"="左边的变量可以接住返回值5) Inputbox函数弹出一个输入对话框,Msgbox则用于输出作业:1) 试验Inputbox的第三个参数2) 写一段程序输出你的年龄3) 写一段程序进行3次输入, 分别输入你和你父母的姓名(要求显示提示), 并分3次输出第二篇(共六篇)我真没想到, 第一次的作业竟然有人不会.看来要讲的非常非常细致才行, 嗯, 今天讲各种"量"和基本运算先说常量, 这个比较简单.什么是常量呢, 常量就是其值不可变化的量.常量分为两种:第一种, 自然常量. 这叫是因为它们本身就是常量, 你怎么更改21的值呢? 他永远都是21, 不可能变成46如果你在程序中使用"21=46", 这样的语句将会引发一个错误. 同样的, 字符串也是常量(还记得字符串吗? 就是包裹在""之间的一串字符), "Hello World"就是一个例子, 如果你使用"Hello World"="Bye"这样的语句同样会引发一个错误. 你能举出自然常量的更多例子吗?第二种, 是我们自己定义的常量,这种量也使用代号, 它们也被赋值, 但和变量的不同点在于, 他们在定义的时候被赋值,以后就不能改变了,如果企图改变将会引发一个错误. 定义一个常量,我们使用"const"这个关键字(关键字的意思是系统定义了有特殊功能的字, 不能作为变量名或常量名使用)格式是:const 常量名=常量值.例如:const PI=3.1415926const NAME="记忆碎片"这样我们就定义了两个常量, PI和NAME, 一般说来, 常量名全部使用大写, 但也可以不用, 随你喜好. 将一些在程序中不需要改变的值定义为常量是个好习惯, 这样能防止不必要的意外. 另外, 使用自定义常量也可以减少你的工作量. 比如:msgbox "Hello World"msgbox "Hello World"msgbox "Hello World"msgbox "Hello World"msgbox "Hello World"这个程序输出五次Hello World, 如果你想要改变输出为Bye-Bye, 就必须修改全部程序, 当然你可以手动修改5次, 但如果你要输出1000次呢? 常量就可以替我们解决这个问题:const hw="Hello World"msgbox hwmsgbox hwmsgbox hwmsgbox hwmsgbox hw这样当你要修改输出的时候只要修改hw的值就行了.好了, 现在我们来看看编程的第一块重要"基石":变量. 解释变量最好的办法我觉得是"盒子", 一个变量好像一个盒子, 里面只能装一个东西, 当你要装进去别的东西的时候必须把原有的东西拿出来. 这个"盒子"是有名称的, 当你在程序中使用变量的时候, 系统会打开盒子取出里面的东西, 让这些东西参与处理, 而不是盒子. 有些语言是很依赖"盒子"里面装些什么东西, 这样才能找到合适的"盒子"(比如C语言), 但VBS给我提供的是能够自动伸缩的"魔术盒", 我们不用关心装进去的是什么东西, VBS会自动调整盒子的大小. 例如:Dim a1,a2,a3a1=14a2=12.23a3="Hello"而不用像C语言那样麻烦: 或者是VB的正规声明(VB可以声明也可以不用)那样:int a1; Dim a1 as integerfloat a2; Dim a2 as Doublechar* a3; Dim a3 as stringa1=14; a1=14a2=12.23; a2=12.23a3="Hello"; a3="Hello"嗯……扯远了……变量有什么用呢? 哇, 那用处可大了. 最简单, 你并不能确定程序运行时变量的值, 比如前一节课我们编的输入姓名的程序, 你不能确定InputBox返回的是什么(还记得Inputbox的返回值吗? 就是你输入的内容), 所以你就没有办法应对各种情况, 但我们用name这个"盒子"把用户的名字装起来, 到用的时候我们只要知道name这个盒子的名字就行了, 系统会自己打开它并把里面的内容拿出来用. 再举个例子, 我们编写一个程序计算一个矩形的面积, 比如这个程序要发给小学生使用:dim a,b,sa=15b=12s=a*bmsgbox s这样就可以求出长为15,宽为12的矩形的面积了, 是不是很简单? 当然,这个程序也可以这样写:dim ss=15*12msgbox s这样看起来程序短了许多, 也节约内存, 但两种都不是鼓励的做法, 为什么? 请看下面.现在, 我们的程序要变得像点样子才行, 谁的程序写出来还要别人修改源代码才能用啊?所以, 我们要接受用户的输入, 还记得吗? InputBox函数.修改后程序如下:dim a,b,sa=inputbox("请输入矩形的长:")b=inputbox("请输入矩形的宽:")s=a*bmsgbox sok, 这么一修改, 无论用户输入怎样的数据, 我们都能计算出矩形的面积了. 如果你用s=15*12能改吗? 当然不行.我想你已经发现了, vbs中的数学计算和真正的算术没有什么不同, +,-,*,/,(),[],{}都是一样的用法, 比如:dim ansans=12+32/4+[(23-10)*2]msgbox ans四则运算的法则在编程中同样生效, 你可以在编程中重新获得小学时候的乐趣(你恨数学?那就别学电脑了).在编程中有一个有趣的运算符是"mod", 这个运算符叫做"取余运算符", 就是取得一次除法的余数, 例如dim aa=16 mod 5你知道a等于几吗? Bingo! 没错, 就是1. 因为16 / 5 =3....1, 所以mod计算的结果就是1.还有一个运算符是"^"(就是键盘"6"上面的小箭头), 他表示"乘幂"(或者是"方") 比如:dim a,b,ca=2b=a^2c=a^3msgbox bmsgbox c则b=a*a=4, c=a*a*a=8好了,我们一次不要讲太多, 这次就讲到这里, 现在总结一下.要点:1) 常量分为自然常量和自定义常量, 常量的值不可修改2) 变量就像盒子, 我们不在乎盒子里装的是什么, 但一定要知道盒子的名字3) 四则运算在编程中没有任何不同4) MOD是取余运算作业:1) 编一个程序, 计算圆形的面积, 半径由用户给出(使用Inputbox) PI取值3.141592) 编一个程序取得20 / 3 的余数第三篇(共六篇)首先, 我来解决一下上次课程的几个疑问第一, 那个余数问题, 16 / 5 = 3……1, 是因为我改过前面的部分, 后面的忘了改了, 不好意思.第二, 请看一下程序清单:(1)Dim a,b,ca=inputbox("a是:","输入半径")b=Inputbox("b是:","输入半径")c=a*2+b*2msgbox c这个输入1、2时是6(2)Dim a,b,ca=inputbox("a是:","输入半径")b=Inputbox("b是:","输入半径")c=(a+b)*2msgbox c这个输入1、2时是24为什么会不一样呢? 在数学上c=(a+b)*2 和c=a*2+b*2是等价的, 在VBS中也是如此. 问题出在"+"上, 在VBS 中, +不仅仅是加号的意思还表示把两个字符串连接起来, 例如"Hello"+"World"="HelloWorld" ,have you understood? 你还记得InputBox函数的返回值吗? 是字符串! 这就看出问题了吧, 在编程中"1"不等于(<>)1, "1"是一个字符, 而1是一个数, 所以a,b都是字符串变量, "1"+"2"="12", 这就好像我们小时跟伙伴开玩笑问他们1+1=?一样, 我们总是笑着说"错啦,应该是11".但为什么, a可以*2却不发生错误呢? 这时VBS比较智能的一个表现, 如果这个字符串的内容是一个数且对他进行数学运算, 则把字符串强制转换成数参与运算, 如果字符串代表一个数, 但不参加数学运算, 而是参加字符串运算(合并)则当作字符串处理, 所以你看到a+b=12, 这时候a+b的结果(12)是一个字符串, 当它要乘以2的时候就被强制转换成了数字12, 这样我就得到了结果24.怎么修改这个程序呢? 我们需要用到另一个内建的函数:int, int函数的功能是将输入值转化成整数值, 我们这样修改:c=(int(a)+int(b))*2这个意思就是把a作为参数传递给int函数, int函数就会返回那个整数(你的输入值), 然后让返回值参与运算, 这样就得到了正确答案.所以,以后如果你用的是inputbox函数的话,最好用int语句加工一下:比如c=int(c) 'c是你自己的变量另外,还有一个函数:CDbl。
VBS脚本教程二
VBS脚本教程二
VBS脚本教程二
上篇
基础知识
第一部分
运行脚本:VBS可以使用不同的程序来运行,其中最常用的是Windows脚本主机(WSH),它是一个免费的Microsoft软件,用于执行VBS
脚本。
调试:在编写脚本时,可以通过使用调试器来检查脚本中的错误。
WSH有一个内置的调试器,可以检查代码的语法错误,以及执行错误。
变量:VBS是强类型语言,它有三种不同的变量类型:数字、字符串
和对象。
变量可以用来存储数据,然后在脚本的一些位置使用它们。
控制结构:VBS提供了用于控制脚本执行流程的语句,比如,If、Select Case和For/Next等。
这些控制结构可以用来执行指定条件的操作,并且可以控制函数的执行顺序。
函数:VBS提供了各种内置函数,可以获取系统信息,实现各种操作,比如:编码、解码、比较字符串等。
第二部分
编程步骤
1.确定脚本目标:最重要的一步。
在编写脚本之前,必须先确定脚本
要实现的目标,以及如何实现。
2.确定变量:在编写脚本前,应该先定义所有变量,并且确定变量的类型(数字、字符串、对象等)。
熟悉VBScript之六部曲—内置函数及用户自定义函数
们 不 小心 拼 错 了变 量 的名 称 。接 着 我们 声 明 了变 量 ,然 后 通 过 GeObe t 数连 接 到 WMI t jc 函 服务 ,服务 起 点 的名
称 为 “ iM g t: 。 W n m s ” 接 下 来 ,我 们 利 用 Isa c s 方 法 , 得 W id ws n tn eOf 取 no 的 服 务 集 合 , 这 个 集 合 中 包 含 了 所 有 执 行 中 的 服 务 对
脚本 开发
一
圈 2:利 用 Ms gBOX函 数 显 示 信 息
圈 1: 取 得 当 前 计 算 机 中 所 执 行 的服 务 名 称
脚 本 一 开 始 我 们 使 用 了 OpinE pii关 键 字 ,强 t x l t o c
迫 VBS i 对 程 序 中 使 用 的 变 量 进 行 检 查 , 因 为 C Pt r
GeO jc 函 数 连 接 w MI 务 , 后 使 用 特 定 的 服 务 名 称 t be t 服 然 访 问 各 种 不 同 的 服 务 。 例 如 ,W i3 一 e vc n 2 S r ie代 表 当 前 W id ws 境 中 的 各 项 服 务 ,W i3 Pitr 表 当 前 计 no 环 n 2 rne 代
象 。由于返 回 的结 果 是一 个 集合 ,所 以我 们 要使 用上 一
期 提 到 的F r a h 句 来 从 集 合 中 依 序 取 得 各 个 服 务 对 o…E c 语
St e wmi jc =GeOb et” iM g s” Ob e t t j c( W n mt: 、
象 , 将 该 对 象 的 说 明 加 入 到 字 符 串 变 量 中 ,并 使 用
Vbs脚本编程简明教程
◎Vbs脚本编程简明教程之一—为什么要使用Vbs?在Windows中,学习计算机操作也许很简单,但是很多计算机工作是重复性劳动,例如你每周也许需要对一些计算机文件进行复制、粘贴、改名、删除,也许你每天启动计算机第一件事情就是打开WORD,切换到你喜爱的输入法进行文本编辑,同时还要播放优美的音乐给工作创造一个舒心的环境,当然也有可能你经常需要对文本中的某些数据进行整理,把各式各样的数据按照某种规则排列起来……。
这些事情重复、琐碎,使人容易疲劳。
第三方软件也许可以强化计算机的某些功能,但是解决这些重复劳动往往事倍功半,我也尝试过使用计算机语言编写程序来解决这些问题,但是随之而来的命令、语法、算法、系统框架和类库常常让我觉得这样是否有必要,难道就是因为猪毛比较难拔,所以我就要去学习机械,为自己设计一个拔猪毛机(?)吗?Vbs是一种Windows脚本,它的全称是:Microsoft Visual Basic Script Editon.(微软公司可视化BASIC脚本版),VBS是Visual Basic的的一个抽象子集,是系统内置的,用它编写的脚本代码不能编译成二进制文件,直接由Windows系统执行(实际是一个叫做宿主host的解释源代码并执行),高效、易学,但是大部分高级语言能干的事情,它基本上都具备,它可以使各种各样的任务自动化,可以使你从重复琐碎的工作中解脱出来,极大的提高工作效率。
我个人认为Vbs脚本其实就是一种计算机编程语言,但是由于缺少计算机程序设计语言中的部分要素,对于事件的描述能力较弱,所以称为脚本,它最方便的地方就是提供了对COM 对象的简便支持。
那么什么是COM对象呢?我这样理解,COM对象就是一些具有特定函数功能项程序模块,他们一般以ocx或者dll 作为扩展名,你只要找到包含有你需要的功能的模块文件,并在脚本中规范的引用,就可以实现特定的功能,也就是说Vbs脚本就是调用现成的“控件”作为对象,用对象的属性和方法实现目的,完全免去了编写代码、设计算法等等麻烦。
VBS内置函数
VBS内置函数之一Abs 函数:返回数的绝对值。
Array 函数:返回含有数组的变体。
Asc 函数:返回字符串首字母的 ANSI 字符码。
Atn 函数:返回数值的反正切。
CBool 函数:返回已被转换为 Boolean 子类型的变体的表达式。
CByte 函数:返回已被转换为字节子类型的变体的表达式。
CCur 函数:返回已被转换为货币子类型的变体的表达式。
CDate 函数:返回已被转换为日期子类型的变体的表达式。
CDbl 函数:返回已被转换为双精度子类型的变体的表达式。
Chr 函数:返回与指定的 ANSI 字符码相关的字符。
CInt 函数:返回已被转换为整形子类型的变体的表达式。
CLng 函数;返回已被转换为Long子类型的变体的表达式。
Cos 函数:返回角度的余弦。
CreateObject 函数:创建并返回对“自动”对象的引用。
CSng 函数:返回已被转换为单精度子类型的变体的表达式。
CStr 函数:返回已被转换为字符串子类型的变体的表达式。
Date 函数:返回当前系统日期。
DateAdd 函数:返回的日期已经加上了指定的时间间隔。
DateDiff 函数:返回两个日期之间的间隔。
DatePart 函数:返回给定日期的指定部分。
DateSerial 函数:返回指定年月日的日期子类型的变体。
Datevalue 函数:返回日期子类型的变体。
Day 函数:返回日期,取值范围为 1 至 31。
Eval 函数:计算表达式并返回结果。
Exp 函数:返回 e (自然对数的底)的多少次方。
Filter 函数:根据指定的筛选条件,返回含有字符串数组子集的、下限为 0 的数组。
Fix 函数:返回数的整数部分。
FormatCurrency 函数:返回的表达式为货币值格式,其货币符号采用系统控制面板中定义的。
FormatDateTime 函数:返回的表达式为日期和时间格式。
FormatNumber 函数:返回的表达式为数字格式。
vb中format函数的用法
vb中format函数的用法VB中Format函数的用法VB中的Format函数是一个非常有用的函数,它可以将数字、日期和字符串格式化为指定的格式。
在本文中,我们将详细介绍VB中Format函数的用法。
一、基本语法Format函数的基本语法如下:```Format(expression, [format], [firstdayofweek], [firstweekofyear]) ```其中,expression参数是要格式化的值;format参数是指定格式字符串;firstdayofweek参数是指定一周的第一天;firstweekofyear参数是指定一年的第一周。
二、数字格式化1. 基本格式使用Format函数可以将数字格式化为带有千位分隔符、小数点等特定格式。
例如:```Dim num As Doublenum = 1234567.89Debug.Print Format(num, "#,##0.00")```输出结果为:1,234,567.89在上面的例子中,我们使用了#和0两个占位符来表示数字。
#表示可选数字,如果该位没有数字,则不显示;0表示必须显示数字,如果该位没有数字,则显示0。
2. 货币格式使用Format函数还可以将数字格式化为货币形式。
例如:```Dim num As Doublenum = 1234567.89Debug.Print Format(num, "$#,##0.00")```输出结果为:$1,234,567.89在上面的例子中,我们在格式字符串前加上$符号来表示货币形式。
3. 百分比格式使用Format函数还可以将数字格式化为百分比形式。
例如:```Dim num As Doublenum = 0.1234Debug.Print Format(num, "0.00%")```输出结果为:12.34%在上面的例子中,我们使用%符号来表示百分比形式。
VBS教程:函数-FormatNumber函数
VBS教程:函数-FormatNumber函数FormatNumber 函数返回表达式,此表达式已被格式化为数值。
FormatNumber(expression [,NumDigitsAfterDecimal [,IncludeLeadingDigit [,UseParensForNegativeNumbers [,GroupDigits]]]])ArgumentsExpression必选项。
要被格式化的表达式。
NumDigitsAfterDecimal可选项。
指⽰⼩数点右侧显⽰位数的数值。
默认值为 -1,指⽰使⽤的是计算机的区域设置。
IncludeLeadingDigit可选项。
三态常数,指⽰是否显⽰⼩数值⼩数点前⾯的零。
有关数值,请参阅“设置”部分。
UseParensForNegativeNumbers可选项。
三态常数,指⽰是否将负值置于括号中。
有关数值,请参阅“设置”部分。
GroupDigits可选项。
三态常数,指⽰是否使⽤计算机区域设置中指定的数字分组符号将数字分组。
有关数值,请参阅“设置”部分。
设置IncludeLeadingDigit、UseParensForNegativeNumbers 和 GroupDigits 参数可以有以下值:常数值描述TristateTrue-1TrueTristateFalse0FalseTristateUseDefault-2使⽤计算机区域设置中的设置。
说明当省略⼀个或多个可选项参数时,由计算机区域设置提供被省略参数的值。
注意所有设置信息均取⾃区域设置的“数字”附签。
下⾯例⼦利⽤FormatNumber函数把数值格式化为带四位⼩数点的数:Function FormatNumberDemo Dim MyAngle, MySecant, MyNumber MyAngle = 1.3 ' ⽤弧度定义⾓。
MySecant = 1 / Cos(MyAngle) ' 计算正割值。
vbs脚本经典教程全
Vbs脚本经典教材(最全的资料还是MSDN)—为什么要使用Vbs?在Windows中,学习计算机操作也许很简单,但是很多计算机工作是重复性劳动,例如你每周也许需要对一些计算机文件进行复制、粘贴、改名、删除,也许你每天启动计算机第一件事情就是打开WORD,切换到你喜爱的输入法进行文本编辑,同时还要播放优美的音乐给工作创造一个舒心的环境,当然也有可能你经常需要对文本中的某些数据进行整理,把各式各样的数据按照某种规则排列起来……。
这些事情重复、琐碎,使人容易疲劳。
第三方软件也许可以强化计算机的某些功能,但是解决这些重复劳动往往事倍功半,我也尝试过使用计算机语言编写程序来解决这些问题,但是随之而来的命令、语法、算法、系统框架和类库常常让我觉得这样是否有必要,难道就是因为猪毛比较难拔,所以我就要去学习机械,为自己设计一个拔猪毛机(?)吗?Vbs是一种Windows脚本,它的全称是:Microsoft Visual Basic Script Editon.(微软公司可视化BASIC脚本版),VBS是Visual Basic的的一个抽象子集,是系统内置的,用它编写的脚本代码不能编译成二进制文件,直接由Windows系统执行(实际是一个叫做宿主host的解释源代码并执行),高效、易学,但是大部分高级语言能干的事情,它基本上都具备,它可以使各种各样的任务自动化,可以使你从重复琐碎的工作中解脱出来,极大的提高工作效率。
我个人认为Vbs脚本其实就是一种计算机编程语言,但是由于缺少计算机程序设计语言中的部分要素,对于事件的描述能力较弱,所以称为脚本,它最方便的地方就是提供了对COM对象的简便支持。
那么什么是COM对象呢?我这样理解,COM对象就是一些具有特定函数功能项程序模块,他们一般以ocx或者dll作为扩展名,你只要找到包含有你需要的功能的模块文件,并在脚本中规范的引用,就可以实现特定的功能,也就是说Vbs脚本就是调用现成的“控件”作为对象,用对象的属性和方法实现目的,完全免去了编写代码、设计算法等等麻烦。
VBS基础篇-vbscript常用函数及功能
VBS基础篇-vbscript常⽤函数及功能vbs常⽤函数函数名语法功能Abs Abs(number)返回⼀个数的绝对值Sqr Sqr(number)返回⼀个数的平⽅根Sin Sin(number)返回⾓度的正⽞值Cos Cos(number)返回⾓度的余⽞值Tan Tan(number)返回⾓度的正切值Atn Atn(number)返回⾓度的反正切值Log Log(number)返回⼀个数的⾃然对数Int Int(number)取整函数,返回⼀个⼩于number的第⼀整数FormatNumber FormatNumber(number, numdigitsafterdecimal)转化为指定⼩数位数(numdigitsafterdecimal)的数字Rnd Rnd()返回⼀个从0到1的随机数Ubound Ubound(数组名,维数)返回该数组的最⼤下标Lbound Lbound(数组名,维数)返回最⼩下标数注释:Rnd 函数语法:Rnd[(number)]返回⼀随机数。
参数 number 可以是任何的数值表达式。
注解:Rnd 函数返回的随机数介于 0 和 1 之间,可等于 0,但不等于 1。
number 的值会影响 Rnd 返回的随机数:Number的取值返回值⼩于0每次都是使⽤numbe当做随机结果。
⼤于0随机序列中的下⼀个随机数。
等于0最近⼀次产⽣过的随机数。
省略随机序列中的下⼀个随机数。
各种转换函数及功能函数功能CStr(variant)将变量variant转化为字符串类型CDate(variant)将变量variant转化为⽇期类型CInt(variant)将变量variant转化为整数类型CLng(variant)将变量variant转化为长整数类型CSng(variant)将变量variant转化为single类型CDbl(variant)将变量variant转化为double类型CBool(variant)将变量variant转化为布尔类型注释:1整型2、长整型Long(长整型) ,其范围从 -2,147,483,648 到 2,147,483,647。
VBS常用运算符和函数
VBS常用运算符和函数基本运算循环及决策+数字加法及字符串连接if ....then 若...则...- 数字减法if ...then...else 若...则...非* 数字乘法else if... 非若/ 数字除法select case... 群组选择条件Mod 求余数end select \ 求商数& 字符串连接for ... next 计数循环^ 次方while...wend 条件循环(一)= 相等do while...loop 条件循环(二)<> 不相等do...loop while 条件循环(三)>= 大于或等于do until...loop 条件循环(四)> 大于do...loop until 条件循环(五)<= 小于或等于< 小于Not 非字符串处理函数And 且Len 字符串长度Or 或Mid 取部分字符串Xor 异或Left 从字符串开头取部分字符串Right 从字符串结尾取部分字符串数学函数Lcase 转换成小写Abs 绝对值Ucase 转换成大写Sgn 正负号Trim 清除字符串开头及结尾的空格符Hex 转换成十六进制Ltrim 清除字符串开头空格符Oct 转换成八进制Rtrim 清除字符串结尾空格符Sqr 平方根Replace 替换字符串部分字符Int 取整数Instr 判断是否包含于另一个字符串(从起始搜寻) Fix 取整数InstrRev 判断是否包含于另一个字符串(从结尾搜寻) Round 取整数Space 任意字符数的空格符Log 以e为底的对数String 任意字符数的任一字符Sin 正弦函数StrReverse 反转字符串Cos 余弦函数Split 以某字符分割字符串Tan 正切函数数据类型转换函数日期时间函数Cint 转换成整形Date 现在日期Cstr 转换成字符串Time 现在时间Clng 转换成常整数Time 现在时间Cbool 转换成布尔函数NOw 现在日期时间Cdate 转换成日期函数DateAdd 增加日期CSng 转换成单精度DateDiff 两日期差CDbl 转换成双精度DateSerial 日期设定Datevalue 日期设定其它函数Year 现在年份Array 产生数组Month 现在月份Asc 字符ASCII码Day 现在天Chr ASCII码字符Hour 现在时刻Filter 过滤数组Minute 现在分钟InputBox 输入窗口Second 现在秒钟Join 合并数组中的元素Timer 午夜距现在秒数MsgBox 信息窗口TimeSerial 时间设定Lbound 数组下界Timevalue 时间所属部分Ubound 数组上界WeekDay 星期名称MonthName 月份名称指令Const 设定常数ASP对象Dim 定义变量或者数组Session对象Erase 清除数组IsEmpty 测试Session变量是否存在ReDim 重新声明数组TimeOut 设定Session变量生存周期Randomize 起始随机数Abandon 强制清除Session变量Rnd 取得随机数Application对象Connection对象IsEmpty 测试Application变量是否存在Open 打开与数据库的连接Lock 锁定Application变量Execute 打开Recordset对象Unlock 解除Lock指令的锁定Close 关闭Connection对象Recordset对象Cookies对象movefirst 将记录指针移至第一条Expires 设定Cookies变量的生存周期movelast 将记录指针移至最后一条movenext 将记录指针移至下一条moveprevious 将记录指针移至上一条bof 测试是否为recordset的起始eof 测试是否为recordset的结束open 打开Recoreset对象close 关闭recordset对象fields 读取数据的子对象fileds.count 字段个数pagesize 每页记录条数absolutepage 设定为某页pagecount 总页数Absoluteposition 直接跳至某条记录。
vb format函数
输出
Format (2, “0.00”)
2.00
Format (.7, “0%”)
70%
Format (1140, “$#,##0”)
$1,140
fmt字符的意义
字符
意义
字符
意义
0
显示一数字,若此位置没有数字则补0
.
小数点
#
显示一数字,若此位置没有数字则不显示
,
千位的分隔符
%
数字乘以100并在右边加上”%”号
august-96
m/d/yy h:mm
8/16/96 22:41
hh:mm AM/PM
10:41 PM
返回Variant(String),其中含有一个表达式,它是根据格式表达式中的指令来格式化的。
语法
Format(expression[format[firstdayofweek[firstweekofyear]]])
vb format函数
格式输出Format函数
Format函数用于制定字符串或数字的输出格式。
语法:x = Format (expression, fmt )
expression是所输出的内容。fmt是指输出的格式,这是一个字符串型的变量,这一项若省略的话,那么Format函数将和Str函数的功能差不多。如:
Format函数的语法具有下面几个部分:
部分
说明
expression
必要参数。任何有效的表达式。
format
可选参数。有效的命名表达式或用户自定义格式表达式。
firstdayofweek
可选参数。常数,表示一星期的第一天。
firstweekofyear
可选参数。常数,表示一年的第一周。
用VBS写的VBSCRIPT代码格式化工具VbsBeautifier
昨天在VBS吧看到一个精华帖《VBS代码格式化工具》,是用C++写的,区区VBS代码格式化,就不要劳C++大驾了吧,用VBS实现VBS代码格式化工具不是更自然么?网上的VBS代码大部分都没有缩进,新手不知道要缩进,高手缩进了被某些个垃圾网站采集以后也就没有了缩进,还有以一些博客贴吧也会把缩进给吃掉。
除了缩进之外,由于学VBS的大部分都是学批处理出身,代码风格还是跟写批处理一样难看。
其实一般情况下用VbsEdit 5.2.4.0自带的代码格式化功能就行了,没有必要重复造轮子。
只不过VbsEdit 5.2.4.0在格式化带有冒号的代码时不是很理想,加上我已经很久没有写过像样的VBS脚本了,所以还是决定造一下轮子。
2011年12月27日更新:在线VBScript代码格式化工具VbsBeautifier因为代码比较长,所以贴在文章的最后,下面是VBS代码格式化工具的效果演示:格式化前的VBS代码:代码如下:ON ERROR RESUME NEXT:Set fso = CreateObject("Scripting.FileSystemObject"):X=0:T=true:WhiLe TInput=Inputbox("Filename Lowercase Batch Convertor"&vbcrlf&vbcrlf& _ "Please input the destination folder name. e.g. C:\Webmaster"&vbcrlf&vbcrlf& _"Note: Do NOT add '\' in the end of folder name!","FLowercase Convertor","C:\")iF Input="" then:Msgbox"Folder name is empty!",48,"Error!":T=true:else T=false:end If:wendMsgbox"All files names of "&Input&" will be converted to lowercase now...",64,"Note"fold(Input):Msgbox"Done! Total "&X&" file(s) were converted to lowercase.",64,"Done"sub fold(Path):SET f=fso.GetFolder(Path):Set rf = fso.GetFolder(Path).files:Set fc = f.SubFoldersfoR EACh fff in rf:lcf1=LCase(fso.GetAbsolutePathName(fff))fso.MoveFile fff, lcf1:X=X + 1:next:for EacH f1 in fc:fold(f1)Set file=fso.GetFolder(f1).files:fOR EACh ff iN file:lcf=LCase(fso.GetAbsolutePathName(ff))fso.MoveFile ff,lcf:NEXT:NEXT:END sub格式化后的VBS代码:?1234567891011121314151617181920212223242526272829303132333435 On Error Resume NextSet fso = CreateObject("Scripting.FileSystemObject") X = 0 T = TrueWhile T Input = InputBox("Filename Lowercase Batch Convertor" & vbCrLf & vbCrLf & _ "Please input the destination folder name. e.g. C:\Webmaster" & vbCrLf & vbCrLf & _ "Note: Do NOT add '\' in the end of folder name!","FLowercase Convertor","C:\") If Input = "" Then MsgBox"Folder name is empty!",48,"Error!" T = True Else T = False End IfWEnd MsgBox"All files names of " & Input & " will be converted to lowercase now...",64,"Note"fold(Input) MsgBox"Done! Total " & X & " file(s) were converted to lowercase.",64,"Done"Sub fold(Path) Set f = fso.GetFolder(Path) Set rf = fso.GetFolder(Path).files Set fc = f.SubFolders For Each fff In rf lcf1 =LCase(fso.GetAbsolutePathName(fff)) fso.MoveFile fff, lcf1 X = X + 1 Next For Each f1 In fc fold(f1) Set file = fso.GetFolder(f1).files For Each ff In file lcf = LCase(fso.GetAbsolutePathName(ff)) fso.MoveFile ff,lcf Next NextEnd SubVBS代码格式化工具的源码:?12345678910111213141516171819202122232425262728293031323334353637383940414 2434445464748495051525354555657585960616263646566676869707172737475767778798081 8283848586878889909192939495969798991001011021031041051061071081091101111121131 1411511611711811912012112212312412512612712812913013113213313413513613713813914 0141142143144145146147148149150151152153154155156157158159160161162163164165166 1671681691701711721731741751761771781791801811821831841851861871881891901911921 9319419519619719819920020120220320420520620720820921021121221321421521621721821 9220221222223224225226227228229230231232233234235236237238239240241242243244245 2462472482492502512522532542552562572582592602612622632642652662672682692702712 7227327427527627727827928028128228328428528628728828929029129229329429529629729 8299300301302303304305 Option Explicit If WScript.Arguments.Count = 0 Then MsgBox "请将要格式化的代码文件拖动到这个文件上", vbInformation, "使用方法" WScript.Quit End If '作者: Demon '时间: 2011/12/24 '链接: '描述: VBScript 代码格式化工具'注意: '1. 错误的VBScript 代码不能被正确地格式化'2. 代码中不能含有%[comment]% %[quoted]%等模板标签, 有待改进'3. 由2可知, 该工具不能格式化自身Dim Beautifier, i Set Beautifier = New VbsBeautifier For Each i In WScript.Arguments Beautifier.BeautifyFile i Next MsgBox "代码格式化完成", vbInformation, "提示" Class VbsBeautifier 'VbsBeautifier类Private quoted, comments, code, indents Private ReservedWord, BuiltInFunction, BuiltInConstants, VersionInfo '公共方法'格式化字符串Public Function Beautify(ByVal input) code = input code = Replace(code, vbCrLf, vbLf) Call GetQuoted() Call GetComments() Call GetErrorHandling() Call ColonToNewLine() Call FixSpaces() Call ReplaceReservedWord() Call InsertIndent() Call FixIndent() Call PutErrorHandling() Call PutComments() Call PutQuoted() code = Replace(code, vbLf, vbCrLf) code = VersionInfo & code Beautify = code End Function '公共方法'格式化文件Public Function BeautifyFile(ByVal path) Dim fso Set fso = CreateObject("scripting.filesystemobject") BeautifyFile = Beautify(fso.OpenTextFile(path).ReadAll) '备份文件以免出错fso.GetFile(path).Copy path & ".bak", True fso.OpenTextFile(path, 2, True).Write(BeautifyFile) End Function Private Sub Class_Initialize() '保留字ReservedWord = "And As Boolean ByRef Byte ByVal Call Case Class Const Currency Debug Dim Do Double Each Else ElseIf Empty End EndIf Enum Eqv Event Exit Explicit False For Function Get Goto If Imp Implements In Integer Is Let Like Long Loop LSet Me Mod New Next Not Nothing Null On Option Optional Or ParamArray Preserve Private Property Public RaiseEvent ReDim Rem Resume RSet Select Set Shared Single Static Stop Sub Then To True Type TypeOf Until Variant WEnd While With Xor" '内置函数BuiltInFunction = "Abs Array Asc Atn CBool CByte CCur CDate CDbl CInt CLng CSng CStr Chr Cos CreateObject Date DateAdd DateDiff DatePart DateSerial DateV alue Day Escape Eval Exp Filter Fix FormatCurrency FormatDateTime FormatNumber FormatPercent GetLocale GetObject GetRef Hex Hour InStr InStrRev InputBox Int IsArray IsDate IsEmpty IsNull IsNumeric IsObject Join LBound LCase LTrim Left Len LoadPicture Log Mid Minute Month MonthName MsgBox Now Oct Randomize RGB RTrim Replace Right Rnd Round ScriptEngine ScriptEngineBuildVersion ScriptEngineMajorVersion ScriptEngineMinorVersion Second SetLocale Sgn Sin Space Split SqrStrComp StrReverse String Tan Time TimeSerial TimeValue Timer Trim TypeName UBound UCase Unescape VarType Weekday WeekdayName Year" '内置常量BuiltInConstants = "vbBlack vbRed vbGreen vbYellow vbBlue vbMagenta vbCyan vbWhite vbBinaryCompare vbTextCompare vbSunday vbMonday vbTuesday vbWednesday vbThursday vbFriday vbSaturday vbUseSystemDayOfWeek vbFirstJan1 vbFirstFourDays vbFirstFullWeek vbGeneralDate vbLongDate vbShortDate vbLongTime vbShortTime vbObjectError vbOKOnly vbOKCancel vbAbortRetryIgnore vbYesNoCancel vbYesNo vbRetryCancel vbCritical vbQuestion vbExclamation vbInformation vbDefaultButton1 vbDefaultButton2 vbDefaultButton3 vbDefaultButton4 vbApplicationModal vbSystemModal vbOK vbCancel vbAbort vbRetry vbIgnore vbYes vbNo vbCr vbCrLf vbFormFeed vbLf vbNewLine vbNullChar vbNullString vbTab vbVerticalTab vbUseDefault vbTrue vbFalse vbEmpty vbNull vbInteger vbLong vbSingle vbDouble vbCurrency vbDate vbString vbObject vbError vbBoolean vbVariant vbDataObject vbDecimal vbByte vbArray WScript" '版本信息V ersionInfo = Chr(39) & Chr(86) & Chr(98) & Chr(115) & Chr(66) & Chr(101) & Chr(97) & Chr(117) & Chr(116) & Chr(105) & Chr(102) & Chr(105) & Chr(101) & Chr(114) & Chr(32) & Chr(49) & Chr(46) & Chr(48) & Chr(32) & Chr(98) & Chr(121) & Chr(32) & Chr(68) & Chr(101) & Chr(109) & Chr(111) & Chr(110) & Chr(13) & Chr(10) & Chr(39) & Chr(104) & Chr(116) & Chr(116) & Chr(112) & Chr(58) & Chr(47) & Chr(47) & Chr(100) & Chr(101) & Chr(109) & Chr(111) & Chr(110) & Chr(46) & Chr(116) & Chr(119) & Chr(13) & Chr(10) '缩进大小Set indents = CreateObject("scripting.dictionary") indents("if") = 1 indents("sub") = 1 indents("function") = 1 indents("property") = 1 indents("for") = 1 indents("while") = 1 indents("do") = 1 indents("for") = 1 indents("select") = 1 indents("with") = 1 indents("class") = 1 indents("end") = -1 indents("next") = -1 indents("loop") = -1 indents("wend") = -1 End Sub Private Sub Class_Terminate() '什么也不做End Sub '将字符串替换成%[quoted]% Private Sub GetQuoted() Dim re Set re = New RegExp re.Global = True re.Pattern = """.*?""" Set quoted = re.Execute(code) code = re.Replace(code, "%[quoted]%") End Sub '将%[quoted]%替换回字符串Private Sub PutQuoted() Dim i For Each i In quoted code = Replace(code, "%[quoted]%", i, 1, 1) Next End Sub '将注释替换成%[comment]% Private Sub GetComments() Dim re Set re = New RegExp re.Global = True re.Pattern = "'.*" Set comments = re.Execute(code) code = re.Replace(code, "%[comment]%") End Sub '将%[comment]%替换回注释Private Sub PutComments() Dim i For Each i In comments code = Replace(code, "%[comment]%", i, 1, 1) Next End Sub '将冒号替换成换行Private Sub ColonToNewLine code = Replace(code, ":", vbLf) End Sub '将错误处理语句替换成模板标签Private Sub GetErrorHandling() Dim re Set re = New RegExp re.Global = True re.IgnoreCase = True re.Pattern = "on\s+error\s+resume\s+next" code = re.Replace(code, "%[resumenext]%") re.Pattern = "on\s+error\s+goto\s+0" code = re.Replace(code, "%[gotozero]%") End Sub '将模板标签替换回错误处理语句Private Sub PutErrorHandling() code = Replace(code, "%[resumenext]%", "On 间的空格re.Pattern = "[ \t]*<\s*=[ \t]*" code = re.Replace(code, " <= ") '去掉>=中间的空格re.Pattern = "[ \t]*>\s*=[ \t]*" code = re.Replace(code, " >= ") '在行尾的_ 前面加上空格re.Pattern = "[ \t]*_[ \t]*$" code = re.Replace(code, " _") '去掉Do While中间多余的空格re.Pattern = "[ \t]*Do\s*While[ \t]*" code = re.Replace(code, "Do While") '去掉Do Until中间多余的空格re.Pattern = "[ \t]*Do\s*Until[ \t]*" code = re.Replace(code, "Do Until") '去掉End Sub中间多余的空格re.Pattern = "[ \t]*End\s*Sub[ \t]*" code = re.Replace(code, "End Sub") '去掉End Function中间多余的空格re.Pattern = "[ \t]*End\s*Function[ \t]*" code = re.Replace(code, "End Function") '去掉End If中间多余的空格re.Pattern = "[ \t]*End\s*If[ \t]*" code = re.Replace(code, "End If") '去掉End With中间多余的空格re.Pattern = "[ \t]*End\s*With[ \t]*" code = re.Replace(code, "End With") '去掉End Select中间多余的空格re.Pattern = "[ \t]*End\s*Select[ \t]*" code = re.Replace(code, "End Select") '去掉Select Case中间多余的空格re.Pattern = "[ \t]*Select\s*Case[ \t]*" code = re.Replace(code, "Select Case ") End Sub '将保留字内置函数内置常量替换成首字母大写Private Sub ReplaceReservedWord() Dim re, words, word Set re = New RegExp re.Global = True re.IgnoreCase = True re.MultiLine = True words = Split(ReservedWord, " ") For Each word In words re.Pattern = "(\b)" & word & "(\b)" code = re.Replace(code, "$1" & word & "$2") Next words = Split(BuiltInFunction, " ") For Each word In words re.Pattern = "(\b)" & word & "(\b)" code = re.Replace(code, "$1" & word & "$2") Next words = Split(BuiltInConstants, " ") For Each word In words re.Pattern = "(\b)" & word & "(\b)" code = re.Replace(code, "$1" & word & "$2") Next End Sub '插入缩进Private Sub InsertIndent() Dim lines, line, i, n, t, delta lines = Split(code, vbLf) n = UBound(lines) For i = 0 To n line = lines(i) SingleLineIfThen line t = delta delta = delta + CountDelta(line) If t <= delta Then lines(i) = String(t, vbTab) & lines(i) Else lines(i) = String(d*else" If re.Test(lines(i)) Then lines(i) = Replace(lines(i), vbTab, "", 1, 1) End If Next code = Join(lines, vbLf) End Sub '计算缩进大小Private Function CountDelta(ByRef line) Dim i, re, delta Set re = New RegExp re.Global = True re.IgnoreCase = T SingleLineIfThen(ByRef line) Dim re Set re = New RegExp re.IgnoreCase = True re.Pattern = "if.*?then.+" line = re.Replace(line, "") '去掉Private Public前缀re.Pattern = "(private|public).+?(sub|function|property)" line = re.Replace(line, "$2") End Sub End Class'Demon, 于2011年平安夜更多信息请查看IT技术专栏。
vbs代码教程
vbs代码教程VBScript是一种基于VB(Visual Basic)的脚本语言,可以用于Windows操作系统上的自动化任务和脚本编写。
本教程将带你了解VBScript的基础知识以及如何编写简单的脚本。
1. 输出文本:使用VBScript,你可以使用`MsgBox`函数在屏幕上显示文本。
例如,在脚本中添加以下代码:```MsgBox "Hello World!"```2. 变量:在VBScript中,你可以使用变量来存储和操作数据。
变量可以是字符、数字、布尔值等。
例如,以下代码创建一个变量,并将其打印到屏幕上:```Dim namename = "John"MsgBox name```3. 运算符:VBScript支持各种数学和逻辑运算符,用于进行计算和比较。
例如,下面的代码演示了如何使用运算符进行加法和比较操作:```Dim num1, num2, sumnum1 = 10num2 = 5sum = num1 + num2MsgBox sumDim resultresult = (num1 > num2)MsgBox result```4. 条件语句:条件语句允许你根据条件的不同来执行不同的代码块。
VBScript中最常用的条件语句是`If...Then...Else`。
例如,以下代码根据条件的不同来显示不同的消息:```Dim numnum = 10If num > 10 ThenMsgBox "Greater than 10"ElseIf num < 10 ThenMsgBox "Less than 10"ElseMsgBox "Equal to 10"End If```5. 循环语句:循环语句允许你多次执行相同或类似的代码块。
VBScript中有几种类型的循环语句,包括`For...Next`循环和`Do...Loop`循环。
[精彩]vb中format函数定义与用法
vb中format函数定义与用法Format[$] ( expr [ , fmt ] )format 返回变体型format$ 强制返回为文本--------------------------------数字类型的格式化--------------------------------固定格式参数:General Number 普通数字,如可以用来去掉千位分隔号format$("100,123.12","General Number") 返回值 100123.12Currency 货币类型,可添加千位分隔号和货币符号format$("100123.12","Currency") 返回值¥100,123.12Fixed 格式为带两位小数的数字format$("100123","Fixed") 返回值 100123.00Standard 标准,即带千位分隔号和两位小数format$("100123","Standard") 返回值 100,123.00Percent 百分数format$("100123","Percent") 返回值 10012300.00%Scientific 科学记数法format$("100123","Scientific") 返回值 1.00E+05Yes/No 当值为0时返回 NO,否则返回 YESformat$("100123","Yes/No") 返回值 YesTrue/False 当值为0时返回 False,否则返回 Trueformat$("100123","True/False") 返回值 TrueOn/Off 当值为0时返回 Off,否则返回 Onformat$("100123","Yes/No") 返回值 On自定义格式参数"" 不进行格式化返回值原值0 占位格式化,不足补0format$("100123","0000000") 返回值 0100123# 占位格式化,不足时不补0format$("100123","#######") 返回值 100123. 强制显示小数点format$("100123.12",".000") 返回值 100123.120% 转化为百分数,一个%代表乘以100format$("10.23","0.00%") 返回值 1023.00%format$("10.23","0.00%%") 返回值 102300.00%%, 以千为单位格化format$("10.23",",") 返回值 0format$("10010.23",",") 返回值 10format$("10010.23",",0.00") 返回值 10.01E- E+ e- e+ 显示为科学记数(要注意格式语句,否则会和E的其它含义相混)Format$(12.5,"0.00E+00") 返回值 1.25E+01$ 强制显示货币符号format$("10.23","{threadcontent}.00") 返回值¥10.23- + ( ) space 按位置显示本样Format$("1234.56","-(0.00)") 返回值 -(1234.56)\ 转义符,显示出特殊符号Format$("1234.56","\#.00") 返回值 #1234.56"ABC" 显示双引号 (" ") 之内的字符串。
VB中format函数的使用方法
VB中format函数的使用方法格式:Format $ (数值表达式,格式字符串)功能:按“格式字符串”指定的格式输出“数值表达式”的值。
如果省略“格式字符串”,则Format$函数的功能与STR函数基本相同,唯一的差别是,当把正数转换成字符串时,STR函数在字符串前面留有一个空格,而Format函数则不留空格。
⑴#:表示一个数字位。
#的个数决定了显示区段的长度。
如果要显示的数值的位数小于格式字符串指定的区段长度,则该数值靠区段的左端显示,多余的位不补0。
如果要显示的数值的位数大于指定的区段长度,则数值照原样显示。
例如:Printformat$(25634,”########”) Print format$(25634,”####”)⑵0:与#功能相同,只是多余的位以0补齐。
Printformat$(25634,”00000000”) Print format$(25634,”0000”)⑶.:显示小数点。
小数点与#或0结合使用,可以放在显示区段的任何位置。
根据格式字符串的位置,小数部分多余的数字按四舍五入处理。
Printformat$(256.345,”##.####”) Printformat$(256.345,”###.##”) Printformat$(256.345,”00.0000”) Printformat$(256.345,”000.00”)⑷,:逗号。
在格式字符串中插入逗号起到“分位”的作用,即从小数点左边一位开始,每3位用一个逗号分开。
逗号可以放在小数点左边的任何位置(不要放在头部,也不要紧靠小数点)。
Printformat$(12345.78,”##,##.#”) Printformat$(12345.78,”###,#.#”)⑸%:百分号。
通常放在格式字符串的尾部,用来输出百分号。
Printformat$(256.345,”00.0000%”)⑹$:美元符号。
通常作为格式字符串的起始字符,在所显示的数值前加上一个“$”。