`
hutjsk
  • 浏览: 42285 次
  • 性别: Icon_minigender_1
  • 来自: 西安
最近访客 更多访客>>
社区版块
存档分类
最新评论

vbs教程

 
阅读更多

vbs教程
2011年02月19日
  第二节课,我来带着大家一起来作出咱们自己的Hello World。
  首先呢,我们需要知道VBS的脚本代码在网页中出现的位置,理论上讲,是可以放在任何位置的,但是,需要注意的是,在网页中插入VBS代码的时候,必须将这些代码放在…标记中间,否则将出错。
  而通常,我们都是将VBS代码放在网页的…标记对之间,这样做的好处是,一方面可以使脚本代码集中放置,另外,也可以保证在网页的body部分被解析之前就将所有的脚本代码读取并解码,可以保证我们的脚本是可以运行的。
  综合以上所说,VBS的代码书写格式为:
  
  我们的代码
  
  这里呢,牵扯到了script标记的几个属性,一个是language属性,我们通过这个属性指定当前代码块所使用的脚本语言类型,其取值可以是VBScript、JavaScript,不能是其他值。
  另外,VBS是不区分代码的大小写的,并且VBScript完全可以缩写成vbs的。
  它的for属性,指定了该代码段所针对的对象,稍后我们会通过实际代码来演示,通俗的理解,就是为谁编写的这段代码,这就是for的作用。
  最后一个event属性,指定了该对象所发生的事件,也就是说通过for属性指定的那个对象,发生了event所指定的事件之后,…标记里的代码段才会被执行,否则,是不会执行的。
  那么,说到了对象,也说到了事件,说到对象,就不得不提什么是面向对象,什么是类,什么是对象,但由于我浸淫此道时日尚短,所以对这方面实在不好怎么详细说,我就简单的说一下什么是事件吧,所谓事件,就是网页中的元素所具有的一些行为,这些行为可以是由用户发起的,也可以是由系统发起的,那么下边我来列一个表,写出我们常见的这些事件,估计看完你就明白了。
  与系统有关的事件:
  ●        onload:当一个网页被加载时发生
  ●        onUnload:当一个网页被卸载时发生
  ●        onFocus:当对象获得焦点时发生
  ●        onBlur:当对象失去焦点时发生
  与鼠标有关的事件:
  ●        onClick:当鼠标单击时发生
  ●        onDbClick:当鼠标双击时发生
  ●        onMouseDown:当鼠标按下时发生
  ●        onMouseUp:当鼠标弹起时发生
  ●        onMouseMove:当鼠标移动时发生
  ●        onMouseOver:当鼠标移动到对象上时发生
  ●        onMouseOut:当鼠标离开一个元素时发生
  与键盘有关的事件:
  ●        onKeyPress:当按键时发生
  ●        onKeyDown:当按键被按下时发生
  ●        onKeyUp:当键弹起时发生
  与表单有关的事件:
  ●        onSubmit:当一个表单被提交时发生
  ●        onReset:当一个表单被重置时发生
  ●        onSelect:当文本被选中时发生
  ●        onChange:当一个元素失去焦点,其值发生改变时发生
  为了让我们更好的理解上边所说的内容,我们来写一下我们今天的任务:hello world。
  vbs_1.htm:
  
  
  VBS系列课程--Hello World!
  
  
  打开页面时,将触发body对象的onload事件,进而将执行我们为该事件指定的脚本。
  
  
  作者:三月十三
  上节课我们作出了自己的Hello World,那么这节课我们再来温习一下VBS的基本语法,并通过实际练习让朋友们对VBS的编写有一个实际性的了解。
  我们要写一段代码,使页面中存在一个按钮,当我们单击这个按钮的时候,将触发该按钮的OnClick事件,进而运行我们通过event属性为该事件编写的VBS代码,下面是这个页面的代码:
  ------------------------vbs_2.htm----------------- -------
  
  
  VBS系列课程--继续理解什么是事件、对象
  
  msgbox "这次理解什么是事件了吧?"
  
  
  
  
  
  
  
     执行一下页面,运行结果如图:
  在上面的代码里,我们先用language属性指定这段脚本代码所用的语言是VBS,然后又用for属性指定这段代码是为谁写的,最后用event属性指定这段代码是这个“谁”发生什么事的时候执行,这样就完整了,当单击该按钮的时候,就触发了脚本代码的执行条件,而我们的脚本代码的正文,就是弹出一个对话框。
  好了,这节课就先介绍到这里,下节课我们就要真正进入VBscript的世界了,我们将从VBS里的基本数据类型介绍起。
  完毕。
  作者:三月十三
  上节课我们温习了对“对象”、“事件”的认识,那么,这节课,我们将真正踏入VBScript的大门,我们将一起来学习VBS里的数据类型。
  到现在为止,我们应该知道,VBS,是一种脚本语言,那么作为一种脚本语言,它的语法、数据结构肯定不会太复杂,其实,在VBS里,只有一种数据类型―variant,称为变体型。
  如果我们学习过其他类型的编程语言的话,就知道,一般的数据类型里边都有整形、浮点型、布尔型等等类型,但是这个variant到底相当于其他编程语言中的哪一种数据类型呢?
  答案是―variant是一种特殊的数据类型,它也就是VBS里边所独有的一种类型,那么,它到底代表什么意义呢?
  答案是,在VBS里,它可以代表所有的数据类型,换句话说,VBS里边,所有的数据,都可以把它们称为是variant类型的值,而下边我们所要讲述的,都是variant类型的子类型,是从variant里分生出来的,它们是父子关系。
  关于VBS的variant的问题,我们在随后的介绍VBS中变量与常量的那一节里会进行一些补充,这里就先说到这。
  下边呢,我把从variant里包含的数据子类型用一个表格写出来,我们一起来看一下,由于网页中不支持表格,那么我这里用一个图来表示吧:
  那么,我们上边描述的,是VBS里边variant的子类型,在实际的编写代码的过程中,我们可以使用VarType函数返回相应数据的variant子类型,也可以使用各种VBS提供的函数、方法来转换它们。
  那么,这节课我们就说到这里吧,这节课纯粹是理解性的东西,不要求你现在立马就能全部记下来,但是你要保证在下一节我们学习变量与常量的时候你知道那是什么子类型。
  完毕。
  作者:三月十三
  上节课我们说了VBS里的数据类型,那么介绍完了数据类型之后,我们就该接触到跟数据类型息息相关的东西了,那就是变量和常量。
  我们知道,每一种语言都有它自己支持的数据类型,那么,每一种语言,都有它自己所规定的变量、常量的命名准则,不依照这个准则命名的变量或常量称为非法命名,下面是VBS的标准命名规则:
  (1):第一个字符必须是字母
  (2):不能包含嵌入的句点(.),也就是不能带“点”
  (3):长度不能超过255个字符
  (4):在被声明的作用域内必须唯一,就是说不能重名,这个作用域的问题,我们在接下来会详细讨论
  (5):不能与VBS的关键词相同,每一种语言都有它自己的关键字,所以我们写的程序、脚本中所用的变量名、常量名都不能与这些关键字相同
  说完了命名规则,那么我们就来命名几个变量和常量,看着例子应该会更好理解一点,我们这节课介绍变量和常量,那么我就先说常量,然后再说变量。
  常量:
  什么是常量?
  我想稍微有点基础的人都应该知道,所谓常量就是在程序运行期间,它的值从不发生改变的数据,而与之对应的,变量的值在程序运行期间是可以被改变的,如果我们在程序运行期间试图改变常量的值,那么程序将会出错。
  我们使用const语句来声明常量,基本的格式为:
  Const 常量名=值
  比如:
  1、Const MyName=”PiaoKe”
  2、Const Date=#2010/6/17#
  3、Const ShuZhi=123456
  4、Const P=true
  const后边跟的是我们自己起的常量的名字,常量名后边跟的有个等号,等号后边是我们为这个常量赋的值。
  我来解释一下,第一个声明语句,声明了一个名为“myname”的常量,这个常量的值为一个字符串,我们需要注意的是,如果我们需要为常量或者变量赋的值是一个字符串的话,那么需要用双引号把这个字符串引起来,刚开始学习的新人会经常忘了这么一回事,这个是新人常犯的错误,务必注意。
  VBS中是不区分大小写的,所以常量MyName和常量myname指的是同一常量。
  第二条声明语句,声明了一个日期型的常量,我需要说的是,在为一个常量或者变量赋一个日期型的值的时候,需要用两个“#”将这个日期括起来。
  第三条声明语句,声明了一个数值型的常量,这个是直接赋值,什么都不用加。
  第四条语句,声明了一个逻辑型的常量,也是直接赋值,但其值只能是true或者false。
  关于常量,要介绍的还有最后一点,就是一种特殊的常量--符号常量。
  什么是符号常量呢,就是用一个标识符表示的常量,这些常量是VBS自己定义好的,我们只管在需要的时候拿来用就是了,比如,vbcrlf代表回车符和换行符的集合,vbgreen代表绿色,这种符号常量我们很有可能会在实际编写代码的过程中用到,用到的时候我再来详细解释一番吧,只说理论的话不太好理解。
  那么,我尽量是一节课少讲一些东西,这样可以给那些学习的朋友足够的时间理解,那么,到此为止,常量是说完了,下节课会接着说变量。
  完毕。
  作者:三月十三
  上节课我们介绍了常量的相关知识,这节课我们的任务是把变量了解完。
  所谓变量,就是在程序运行期间,数值可以改变的数据,用专业化点的话来说,变量就是指能够存储程序信息的计算机内存的符号化地址,程序可以通过对变量进行操作,读取或存储变量所引用的计算机内存地址中的数据。
  通俗点说,变量就是我们的程序和计算机内存沟通的渠道,我们的程序对变量所进行的声明、赋值等操作,都对应着计算机内存中的占用内存、释放内存等操作,因为我们直接对计算机的内存操作的话,会很复杂,所以就出现了变量,我们对变量的所有操作,其实质上,是对计算机内存的操作。
  在VBS中,变量使用dim语句来声明,基本的语法格式为:
  Dim 变量名
  这样就完成了对一个变量的声明,然后,我们可以对该变量进行赋值,用专业的话说,是对该变量进行初始化,格式为:
  变量名=变量值
  举个例子,先声明:
  Dim MyName
  再赋值:
  MyName=”三月十三”
  通过上面的两条语句,就完成了我对我的变量的声明和初始化,注意,在VBS里,我们不能将声明和初始化这两个步骤合二为一,即不能在声明的同时对变量进行初始化,如写成下面这样是会出错的:
  Dim MyName=”三月十三”
  可能在其他类型的编程语言中可以这样,但在VBS中不可以!切记,我就犯过多次这样的错误。
  除了一个一个声明变量之外,我们也可以同时声明多个变量,因为VBS里边采用弱类型的方式,所以所有变量都是在使用或赋值时才确定其数据子类型,所以这样的话,我们同时声明多个不同类型的变量会变得很方便,格式为:
  Dim 变量名1,变量名2,变量名3…
  各个变量中间用逗号分号,注意,在编写程序时所有的程序设计符号,都是英文状态下的符号,这一点很多刚学编程的朋友犯,希望大家注意。 举个例子:
  Dim name,sex,birthdate,address,phone
  这样,我就声明了5个可能是不同类型的变量而不必考虑它们将来的数据类型会是什么,但是,如果你以后学习了其他的编程语言,可千万要记住,那时声明多个变量可不是这样声明的,我拿C#来说明一下吧:
  String name,sex;int age,phone;
  通过上面的语句,我声明了4个变量,其中name变量和sex变量属于字符串变量,而age变量和phone变量,则属于整型变量,你可以看到,在声明这两种不同类型变量的时候,我用的不是同一个关键词,而在VBS里,无论你声明一个什么子类型的变量,都用的是dim关键词,因为无论它们最终属于什么子类型,但它们都属于variant类型,这算是VBS的一个特色吧,这也是脚本语言和正式编程语言的区别。
  在C#里,是完全可以同时声明多个变量并同时对它们进行初始化,但是在VBS里不行,会出错。
  那么,我们上面说完了变量的声明以及初始化,但是我们好像没有说到怎么单独对变量进行赋值,下面是格式:
  变量名=变量值
  可以看到,很简单,我还是尽量说的详细一点吧,如果我们在对一个变量进行初始化之后,第二次对该变量进行赋值,那么这个变量原有的值会被新赋的值覆盖掉。
  好了,关于变量,说到这里我们也就了解的差不多了,我们来写一个网页吧,对变量的赋值进行一下使用。
  在打开这个页面时,会弹出一个对话框,提示我们输入一个名字,输入完毕之后会弹出一个对话框对该名字进行欢迎。
  ------------------------vbs_3.htm----------------- -------
  
  
  VBS系列课程--变量的实际应用
  
  sub MySub()
  dim name
  name = prompt("请输入你的名字:")
  alert("欢迎你," & name & "!")
  end sub
  
  
  
  在打开这个页面时,会弹出一个对话框,提示我们输入一个名字,输入完毕之后会弹出一个对话框对该名字进行欢迎。
  
  
  在这个页面中,先是声明了一个名为mysub的过程,这个过程的功能是,显示一个对话框,提示用户输入名字,当用户输入完毕点击确定时,弹出一个对话框对该用户表示欢迎,我把body标记的onload事件指定为了mysub过程,这样在页面打开时就可以运行我们的脚本,这上边的代码你现在可以看不懂,毕竟我用了一些我们现在还没说到的东西,不着急,我们慢慢来,来看一下网页的效果:
  点击确定之后,
  那么,我们来看一下这段脚本代码,首先,我通过dim语句声明了一个name变量,然后,我对这个变量进行了赋值,而赋值的值,是一个函数的返回值,返回的内容是我们输入的内容,这样,就把这个值存到了计算机的内存中,每个人输入的内容不同,那么变量的值也就不同,相应的,在计算机的内存中所存储的数据也不相同,然后脚本的下一句,利用window对象的alert方法,使用了这个变量,其中的“&”,是一个字符连接符,我们将在下一节课专门讨论VBS里的各种运算符,这里不多说。
  关于变量的知识,到这里,还剩下两点没说,一个是变量的作用域和生存期,一个是数组,我们将在下下节专门讨论数组,这里不多说,这节课我们把变量的作用域和生存期说完就下课。
  变量所谓的作用域,是指变量所起作用的范围,就是说,变量声明的位置不同,那么它的作用域也就不同。
  如果我们是在一个过程、函数里声明的一个变量,那么这个变量就只对该过程、该函数起效,也就是说,在该过程、函数之外,我们是无法使用这个变量的,这个变量是声明它的过程、函数所私有的,也就是我的东西你们都不能用,就是这个意思,像这种变量,我们称之为局部变量或过程级变量。
  如果一个变量是在所有的过程、函数之外的地方声明的,那么,这个变量就可以被所有的过程、函数访问,访问的意思就是使用,这时候的变量是一个公用的变量,就是公共设施,大家都可以用,像这种变量,我们称之为全局变量,或者是页面级变量。
  我们上边的那个例子,name变量是在mysub过程内部声明的,那么name变量就是mysub过程的私有变量,别的脚本是不可以使用的,也就是说,我可以在同页面的其他过程、函数中再声明一个name变量,那么这两个name就各自隶属于自己的过程或函数,这样是不会冲突的。
  作用域说完了,下面说生存期。
  所谓生存期,就是指变量从被声明到被撤销的之间的时间,这个时间被称为是变量的生存期,我在上边说过,变量是跟计算机的内存直接关联的,当变量被声明并初始化的时候,内存被占用,当该变量被撤销的时候,那么这块内存就被释放了。
  对于局部变量来说,当其所在的过程或函数执行完毕之后该变量就被撤销了,其所占用的内存也就被释放了,对于全局变量来说,它的生存期是从整个脚本开始执行到脚本执行完毕的这段时间。
  好了,说完了,在以后的实际运用中,我会注明我所声明的变量是属于局部变量还是属于全局变量的。
  下课。
  作者:三月十三
  上节课结束,我们把常量和变量说完了,这节课我们要介绍的是VBS中的各种运算符。
  VBS中的运算符,分为算数运算符、连接运算符、比较运算符和逻辑运算符4种,其实很多编程语言的运算符都是分了这么4种,我们一个一个的来说。
  1、  算数运算符
  包括有我们常用的加(+)、减(-)、乘(*)、除(/),以及取余(mod)、求幂(^)、整除(\)等,这里介绍不详细的,我待会儿会列一个表格把VBS里边所有的运算符都列出来。
  那么,加,就是我们平常理解的加了,减,也跟数学中的一样。
  乘,在数学里,我们用的是“x”来表示乘,但是几乎在所有的编程语言中,乘,都是用星号(*)来表示的。
  除,在数学里,我们用“÷”来表示除法,但是几乎在所有的编程语言中,除法都是用斜杠(/)来表示的,但是这个除法的结果,是以浮点数的方式显示出来的,所谓浮点数,也就是用这个符号计算出来的结果,是带有小数位的。
  注意,我上边说的是几乎全部,但事实上并不是全部,有一些语言中的运算符规定的很奇怪,我们这里不多讨论,你知道不是全部就可以了。
  取余,就是当两个整数相除时的余数。
  求幂,就是求一个数值的幂值。
  整除(\),它跟(/)唯一的区别,在于它不显示小数部分,只显示除法的整数部分。
  2、  连接运算符
  在VBS里,只有两个连接运算符,分别是“+”和“&”。
  这两个运算符都可以起到把两个或者多个字符串连接起来的作用,但是因为第一个连接符(+)不适用于数字和数字的连接(不是相加,是连接),但(&)却可以,所以呢,我们在实际的应用中,一般都用的“&”,而不用“+”。
  3、  比较运算符
  包含相等(=)、不相等()、小于()、小于等于(=)和对象相等(is)这么多的运算符,详细信息,我们待会看表格。 4、  逻辑运算符
  包含非(not)、与(and)、或(or)、异或(xor)这么几个,详细信息,待会看表格。
  下面呢,我把VBS中的运算符列出来并标明它们的优先级:
  运算符的问题,在上表中我已经标出来了,但是对于这4种总类型来说,是遵循“算数à连接à比较à逻辑”的优先顺序的,这个顺序在很多语言中都是通用的。
  好了,数据类型我们就说到这里,下节课专门说数组,下课。
  作者:三月十三
  常量、变量、数据类型,都说完了,那么我们来分一节课的时间给数组。
  先说什么是数组,它也是一种变量,是一种特殊的变量,跟普通变量的唯一区别,是它可以包含多个相同数据类型的变量,它是具有相同数据类型的变量的集合。
  它包含了那么多的变量,并且这么多的变量,都使用的是一个名字,即使用的是数组的名字,在同一个数组里,所有成员变量的数据类型必须是相同的。
  那么,我们说一个数组里包含了那么多的变量,当我们需要使用其中的某一个变量的时候,该怎么使用呢?
  VBS里给我们提供的方法是,使用下标去确定、访问、使用数组中的元素。
  我们说数组也是一种变量,那么我们应该还记得声明变量的方法―使用dim关键字,那么,数组的声明方法,和普通变量的声明方法是差不多的,也是使用dim关键字来声明,所不相同的,是在声明数组时,需要将该数组内元素的个数(也被称为是数组的长度),写在数组名称后的括号里。
  其语法格式为:
  Dim 数组名称(下标)
  如:
  Dim a(7)
  这句话中,我声明了一个长度为8的名为a的数组,这个数组里共包含了8个元素,因为数组元素的下标是从“0”开始的。
  在这里我们需要注意一下数组的长度问题,它的长度总是括号里的数字加“1”的。
  那么,我们声明一维数组是按照上面的方法,那么如果我想声明一个二维数组的话,该怎么写呢?格式如下:
  Dim a(2,3)
  这句话,我声明了一个3行4列的二维数组。
  上边所有的知识,我们说的都是一种数组―定长数组,那么既然有定长的,与之对应的,肯定有不定长的,所谓不定长,换句话说,也就是动态的,下面我来介绍动态数组。
  所谓的动态数组,就是指在程序运行期间,其数组长度可以改变的数组。像上边我们声明的那些数组,在程序运行期间都是无法更改其长度的,只能改变数组内的变量元素的值。
  动态数组的声明方式,跟定长数组的声明方式差不多,我们使用dim关键词来声明它,并使用redim关键词来重置这个数组的长度,但是,需要强调的是,在使用dim语句声明动态数组时,数组名称后的括号中不可包含任何数字,如:
  Dim a()
  Redim a(3)
  第一句,我使用dim语句来声明了一个动态数组,下一句,我使用redim语句来将数组a的长度变为了4,这就是dim和redim的区别。
  另外需要说明的一点是,redim我们可以随时使用,但是需要注意的是,使用redim语句之后,原数组中的所有元素的值将会全部被清空,如果我们需要在保留原数组元素值的基础上并增加数组的长度的话,我们可以使用preserve关键字,如:
  Dim a()
  …
  Redim preserve a(3)
  上面这两句话执行完毕后,数组a中的原有元素值不会丢失,并且会在该基础上增加数组a的长度到4。
  另外,需要说明的是,如果我们在一段代码的前一部分使用了动态数组,那么其后一定要用redim语句来重设该数组的长度,否则将出错。
  那么,数组的声明我们就说完了,下面说说数组的赋值。
  我在上边说:VBS里给我们提供的方法是,使用下标去确定、访问、使用数组中的元素。
  相应的,如果我们需要给数组中的某个变量元素赋值,我们必须指出该元素在这个数组里的位置,即写出该元素的下标,如:
  Dim a()
  …
  Redim a(4)
  A(0)=20
  这两句话中,我先是使用dim语句声明了一个动态数组,在下边的语句中,我指定的下标是0,即对应的数组中的第一个元素,将它的值赋为20。
  我说过好多次,学编程,你要学的,是一种思想,至于语言的语法格式、关键字什么的,每种语言有它自己的风格,都是会变的,那么什么不会变呢?那就是编程的思想。
  我们在上边学习的数组元素的赋值操作,在很多语言中都是通用的。
  好了,关于数组,我们就说到这吧,下节课开始讲VBS的中心―sub过程和function函数,下课。
  作者:三月十三
  上节课说了数组,这节课说sub过程,下节课说function函数,这节课,觉得压力挺大的,我担心自己会讲不好…
  好吧,刚才去跟老婆要了一些信心,OK,对我亲爱的老婆mua~个~
  下面开始。
  我们在编写VBS脚本的时候,如果听到别人说过程,你就可以认为,他说的是sub过程,你可以认为他说的过程是sub过程的简称,那么相对应的,函数,是function函数的简称,这个是一种行业习惯,不必深究,我们记住就行。
  但是,严格的来说,无论是sub过程或者是function函数,它们两个都可以被叫为过程,它们都是过程中的其中一类,而区分一个过程属于sub过程或者属于function函数的依据,就是看该过程有没有返回值,如果有返回值,那么就是function函数,如果没有返回值,那么就是sub过程。
  我先来说一下sub过程的定义,过程就是一组用于实现一个特定功能的语句的集合,其实,function过程也是可以这么定义的,只是function函数多了一个函数的返回值罢了。
  另外,我需要说一下,我们为什么要在我们的程序、脚本中使用一个个过程、函数呢?
  因为在程序设计的理念里,如果一个程序的代码很多,那么相应的,如果不对这些代码进行详细的分组,那么就会让看代码的人很头疼,并且不利于我们对程序的修改等工作,而过程与函数,就相当于对这些很多很多的代码进行了一下细致的分组,把这些代码按照各自的功能而分为不同的模块,当我们的程序需要使用这些模块的时候,就可以直接调用而不必再去写重复的代码,而这些所谓的模块,在VBS里,被叫做过程,或函数。
  我详细点说吧,就是一个大的程序,它可以实现很多功能,那么这些函数与过程,所起的功能就是将这个大程序所可以实现的功能分离开来,每个过程或函数负责实现一个功能,那么再把这些过程与函数拼起来,那我们的程序也就具备了程序所要求的所有的功能,就是这么个意思。
  下面是sub过程的代码格式:
  Sub 过程名 (形式参数)
  语句…
  End sub
  而关于过程或函数的调用问题,我们可以去看一下我发的VBS系列的开场篇,里面详细介绍了VBS里过程调用的方式,但是那些都是针对特定事件的过程调用,那么其实我们还有一种调用过程的方式,即使用call语句,格式如下:
  Call 过程名 (实际参数)
  使用call语句的时候,需要注意的是,call关键词可以省略,就是说我们调用一个过程的时候不必写call这个单词,也可以实现调用功能,只是这时必须要把过程后的参数两边的括号去掉,如果我们使用了call关键字,那么必须要带括号。 关于形式参数与实际参数的问题,我们待会对着源码讲,那样会好懂一点,下面是一个非常经典的例子:
  ------------------------vbs_4.htm----------------- -------
  
  
  VBS系列课程--交换两个变量的值
  
  sub myswap(a,b)
  dim c
  c=a:a=b:b=c
  end sub
  '上边定义了一个实现转换功能的sub过程,下面将调用它
  sub button1_onclick()
  dim x,y
  x=form1.text1.value
  y=form1.text2.value
  call myswap(x,y)    '这是带call关键字的写法,也可以这么写:
  'myswap x,y
  '转换完毕,下面输出结果
  form1.text1.value=x
  form1.text2.value=y
  end sub
  
  
  
  
  变量一:
  

  变量二:
  

  

  
  ????????
  
  

  

  在页面中的文本框中输入两个值,点击【交换变量的值】按钮,脚本将交换二者的值。
  
  
  
  运行效果如图,转换前:
  点击按钮转换后:
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics