VB的学习及使用总结

摘要:
通常,问题解决后,你将没有太多机会再次使用这种技术或语言,所以我不喜欢它。也就是说,大投资,小回报!但我认为我应该记录这个过程!
 
引言
        在最近的一个需求当中,因为要用到VB的缘故,所以有机会了解了一下VB, 老实讲,我不喜欢这样的学习,本人是在一家银行从事外包工作的,主要从事Java 开发, 工作中就是负责好几个项目的运维,因为这些项目做的时间久了一点,再加上客户这边IT也不是很规范,每个系统、项目用到的技术和架构都是不一样的,可以说是百花齐放,所以有时候在一个项目中,你必须得会好几种语言,而且往往你花了很大的精力和时间学会的一门新的技术和语言,只是为了解决一个很小的问题! 当然这次也不例外,需要将一个Java的DEC加密算法改用VB实现。往往在问题解决之后,你也就没有多少机会再用到这门技术或语言,所以我不喜欢,这就是投入大,回报小!  但是我觉得我应该把这个过程记录下来!
 
开发工具
        在这次开发中,因为编码量比较少,所以我是用 Office 2007 里的Excel来开发的,VB版本是 VB6.5,  具体使用如下:
 
一. 首先调出Excel(以Office2007为例)自带的VB开发工具
打开Excel选项
VB的学习及使用总结第1张
 
常用 --->  选中“在功能区显示"开发工具"选项卡
VB的学习及使用总结第2张
 
确定保存后,可以在Excel功能区看到"开发工具"选项卡
VB的学习及使用总结第3张
 
点击"Visual Basic"打开VB的工发工具
VB的学习及使用总结第4张
 
二. VB代码的运行调试
1. 运行子过程/用户窗体 (F5) 
    将鼠标放到需要运行的子过程上,按“F5 ”可以直接运行。
2. 逐行运行 (F8)
    将鼠标放到需要运行的子过程上,按“F8 ”可以逐行运行代码,如图:
VB的学习及使用总结第5张
 
3. F9 可以添加/移除断点
VB的学习及使用总结第6张
 
4. 在调试中,用鼠标选中要查看的对象,可以查看该对象的值
VB的学习及使用总结第7张
 
三: VB部分语法总结
1. VB中逻辑代码块
VB 的逻辑代码块分: 子过程(Sub) 及 函数过程(Function)
Private Sub TestSub()
    Call TestFun
End Sub
 
Public Function TestFun()
    Dim n As Integer
    n = 123456
    TestFun = n
End Function
注意: 过程和函数的主要区别是:过程没有返回值,相当于对象中的方法,只不过程没有经过封装成对象;函数有返回值.
 
2. 变量定义及作用域
VB的学习及使用总结第8张
 
3. VB 数组的定义
数组的定义有两种形式
第一种:Dim ArrayName(n) As Type。这种形式中,数组变量是从ArrayName(0)~ArrayName(n),共n+1个元素。
第二种:Dim ArrayName(Lower To Upper) As Type。这种形式中可以定义数组上界和下界,比如Dim iA(4 To 14) as Integer。这样就可以对应从iA(4)到iA(14)的赋值
 
所以如果要定义一个长度为 64 的一维数组就不能像 Java 那样了..
Dim ArrayName(1 To 64) As Type  或者 Dim ArrayName(63) As Type 都表示长度为 64 的数组。
 
二维数组的定义如下
Dim ArrayName(0 To 63, 0 To 63) As Type
 
使用Array 函数初使化数组
Dim a
a = Array(10, 25, 45, 12)  
注意:通过Array函数初使化数组,数组中值的类型为 Variant,在后面使用的时候还需要进行类型转换,否则会报错!
 
4. VB字符串处理函数
LEN字串長度函數:計算字串的長度。 函數運算式 結果 
len("abcd") 4 
len("中文字") 3 
len(abc中文) 5

MID取部份字串函數:依開始位置擷取固定長度字串。 函數運算式 結果 
mid("vbscript",3,3) scr 
mid("vbscript",3) script 
mid("vbscript",1,2) vb

LEFT字串開頭取部份字串函數:將某一字串由開頭擷取固定長度。 函數運算式 結果 
left("vbscript",2) vb 
left("vbscript",5) vbscr

RIGHT字串結尾取部份字串函數:將某一字串由結尾擷取固定長度。 函數運算式 結果 
right("vbscript",2) pt 
right("vbscript",6) script

LCASE轉大寫函數:將字串中的大寫字母變成小寫。 函數運算式 結果 
lcase("VBScript") vbscript 
lcase("VBScript程式") vbscript程式

UCASE轉小寫函數:將字串中的小寫字母變成大寫。 函數運算式 結果 
ucase("VBScript") VBSCRIPT 
ucase("VBScript程式") VBSCRIPT程式

TRIM刪除頭及尾空白字元函數:將字串開頭及結尾的空白字元刪除。 
LTRIM刪除開頭空白函數:將字串開頭的空白字元刪除。 
RTRIM刪除結尾空白函數:將字串結尾的空白字元刪除。 函數運算式 結果 
trim(" VBScript ") VBScript 
ltrim(" VBScript ") VBScript 
rtrim(" VBScript ") VBScript

REPLACE替代字串函數:將字串中的某字串用另一字串代替。 函數運算式 結果 
replace("VBScript","VB","JAVA") JAVAScript

INSTR是否包含另一字串函數:傳回子字串在字串中的第一次出現位置。 函數運算式 結果
instr("ABCabc","a") 4 
instr("ABCabc","BC") 2

SPACE空白字元函數:產生N個空白字元。 函數運算式 結果 
space(10)

STRING產生字串函數:產生N個字元。 函數運算式 結果 
string(5,"*") ***** 
string(3,65) AAA

STRREVERSE反轉字串函數:將字串內容前後反轉。 函數運算式 結果 
strreverse("VBScript") tpircSBV 
strreverse("中文字") 字文中

SPLIT分割字串函數:將長字串依某字元分割並放於陣列中。 函數運算式 結果 
arr=split("張三&李四&王五","&") 
arr(0)="張三" 
arr(1)="李四"

将String类型的对象转换为 Integer 类型
Dim n As Integer
Dim s As Integer
s = "123456"
n = Cint(s)
n = Val(s)
以下两种方法均可.
 
5. VB 循环逻辑
Dim n As Integer
For n = 0 to 5
    ......
Next n
将从0 -- 5 循环6 次..
6. VB 条件判断
Dim n As Integer
n = 1
If(n > 0) Then
    .....
Else
    ...
End If
 
6. VB中断代码执行
Public Function setParameter(s As String)
    Dim userpwd, pwd1, pwd2 As String
    userpwd = s
    '字符串比较,相同=0,不相同=1
    If (StrComp(userpwd, "") = 0) Then
        g_strEncryPassWord = userpwd
        Exit Function    
    Else
        userpwd = UCase(userpwd)
    End If
    g_strEncryPassWord = pwd1 + pwd2
End Function
当代码执行到一个地方,不想执行以下的代码时,可能通过 Exit Function完成,这类似于Java中的 return ;
 
暂到此..........
 
 
整理背景: 港交行做華潤聯營卡需求時記錄 [2012-11-26]
 

    免责声明:文章转载自《VB的学习及使用总结》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

    上篇日志分析系统canvas基础2--绘制图形下篇

    宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

    相关文章

    JSDOM获取子节点的一些方法

    一般情况获取子节点,通过找到查找父节点的ID或者class类名,来获取父节点,再通过children属性,得到子节点的数组; 之前在另外一篇随笔中说过,如果使用另一个属性childNode,会把注释、空文本、非空文本、标签都当做子节点,所以不要使用childNode属性。 var father = document.getElementById("ID名"...

    Numpy的补充(重要!!)

    轴的概念   英文解释  https://www.sharpsightlabs.com/blog/numpy-axes-explained/   汉化解释 https://www.jianshu.com/p/f4e9407f9f9d 多维数组的索引及切片   https://blog.csdn.net/brucewong0516/article/detai...

    objective-c(十二)关于Foundation框架

      Foundation框架可以说是objective-c最强大的库,基本上所有的通用标准都是有Foundation来提供的,首先要介绍的就是NSString对象。   NSString就是java中的String字符串。只不过在oc中。NSString只能赋值的是静态字符串变量,因此赋值是稍微有些不同   NSString temp = @“hello...

    php Array

    1. 创建数组 创建一个包含指定范围的数组   array range( mixed low, mixed high [, number step]); 基于变量创建一个数组   array compact( mixed varname [, mixed…]);   extract(array &array) 将数组解析为变量 2. 计算数组大小...

    使用antd Table + mobx 处理数组 出现的一系列问题

    在store中定义了一个数组: @observable list = [...] 若是在table组件中直接使用list: <Table className={styles.table} columns={this.columns} dataSource={list}  /> 这时就会提示以下错误...

    Matlab学习笔记(三)

    二、MATLAB基础知识 (四)数组 MATLAB总是把数组看作存储和运算的基本单位,标量数据也被看作是(1×1)的数组 一维数组的创建 创建一维数组的几种方法:(e_two_14.m) 直接输入法:直接通过空格、逗号和分号来分隔数组元素。 步长生成方法:x=a:inc:b,a和b为一维向量数组的起始数值和终止数值,inc为数组的间隔步长;如果a和b...