Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 21

Form:窗体

代码中 me 代表当前 窗体
----------------------------------------------------------
最重要的三个控件:1 Label 标签
2 TextBox 文本框
3 CommandButton
----------------------------------------------------------
name 属性
每一个窗体上的控件都有一个唯一的名称
命名规则:必须以字母或汉字开头,由字母,汉字,数字串,下划线组成,
长度不超过 40 个字符
caption:标题

代码:msgbox
功能:跳出一个消息框
如 msgbox "hello"
点开控件窗体的时候就会跳出 hello

保持 vb 文件时会有二个文件,一个 frm 结尾,一个 vbp 结尾,最重要的是 frm 文件,他保存的是程序代码!而


vbp 是保持工程文件

设置属性的方法
对象名.属性名=属性值

Click:"事件",在 vb 中 click 就是你点击控件的意思


在编写代码中上面就有一个 click 表示点击控件时会发生你下面编写的内容
我们所写的代码都是在 click 中编写的

注意编写 Form 的时候可能默认是 Load 事件,我们要改成 click 事件!

如果想要一行中写二条语句需要加(冒号:)才可以
如 a=10 :b=20 //这样子才能写在一行,不然就会报错

在 vb 中的注释是:'单引号
如'测试
=====================================================
三大主要功能

TextBox:设置文本框 在右侧属性布局中的 text 选项中设置文本内容

Label 标签:设置标签 在右侧属性布局中的 caption 中设置标签内容

CommandButton 按钮:有 name 属性,caption 属性,和 click 属性


=====================================================

-----------------------------------------------------------------------------------
在 vb 中的取址符&
功能引用某个控件的内容
如 我在 CommandButton 按钮的 click 设置中
加上 &Text1.text 即是把 text1.text 的内容用到 CommandButton 按钮中
-----------------------------------------------------------------------------------

-----------------------------------------------------------------------------------
!!!!vb 中代码的程序执行顺序为上到下!!!!
-----------------------------------------------------------------------------------

修改窗体名为 me.caption = "窗体名"

所以逻辑如下 窗体名.captain 就可以设置想设置窗体的名字

关闭程序的语句:End

Font 字体 如宋体那些的。。

如 me.Font= "宋体" 即完成当前窗体的字体设置

fontsize 为名字大小

fontbold 使用 FontBold 属性可以指定字体在下列情况中是否以粗体样式显示


True 为文本加粗
false 文本不加粗
如:me.FontBold = Ture //即表示当前文本加粗

=======================================================
=======================================================
常量和变量

常量:就是在程序运行中其值不能改变的量
分为:1 字面常量 如 整数 123
浮点数 45.7
指数形式 3e-2
字符串"abc"
2 符号常量 通过符号表示常量
如:const PI=3.14159

变量:存放数据的盒子,就是在程序运行中其值可以改变的量
盒子名称(变量名)
盒子类型(变量类型)Integer

变量定义:Dim 变量名 [AS 类型] //Dim 就是定义的意思


如:Dim a AS Integer //意思就是在数据中申请一个整形变量 a,注意 AS 要加上
比如我想定义一个浮点型 temp 存放数据,就是:Dim temp As Single
变量名也称为标识符
使用规范:只能由字母,数字和下划线三种字符组成,且第一个字符必须是字母
不能使用 vb 中的关键字
合法标识符:count,temp,sum
不合法标识符:If,Mr.Dor,%t
----------------------------------------------------------------------------
数据类型
整型:Integer 范围:-32768 到 32767
浮点型:Single,double
single 范围:很大很大很大。。
double 范围:很大很大很大好多次方。。
字符型:string
布尔型:Boolean //在运算中 True 为-1,False 为 0 //true 转为数值是-1,而数值转为 true 需要非零数,
就是大于 0 的都可以转为 true,而 false 还是一样
-----------------------------------------------------------------------------
存放数据
赋值操作:变量名 = 数据值
例如:a = 20
存放数据的要点:1 变量一定要先定义
2 变量名尽量有一些意义
3 变量名要放到数据前部
4 变量定义要注意数据范围,选择正确的数据类型
-----------------------------------------------------------------------------
输出数据 str
*输出到文本框中
*需要使用 Str 函数 (//str 函
数的作用就是将数值数据转换为字符数据)
//因为 Text 文本框只能输出字符数据,那我们想输出数值数据就需要先转换,然后放进去
如:Dim a As Integer
a = 10
Text1.Text = Str(a)
-----------------------------------------------------------------------------
** 如何计算一个数的百位十位个位
如设一个值为 257:
百位:对数进行整除 100,如:257 / 100 就会得到 2
十位:先对数进行 100 的 mod 运算,然后再整除 10 如:(257 mod 100)/ 10 就会得到 5
个位:对数进行 10 的余 mod 运算 如:257 mod 10 就会得到 7

如果要算千位,那百位的规则就要发生改变,其他不变
设值:1634
千位:1634 \ 1000
百位*(改变了) : (1634 \ 100) mod 10 or ((1634 \ 10) mod 100) \ 10
十位个位还是一样

-----------------------------------------------------------------------------
算术运算符
+加 -减 *乘 /除 \整除 ^乘方(次方) Mod 求余运算符//Mod 两侧必须都为整数
运算符优先级:1: ^ 2: 负号 - 3:* 4: / 5:\ 6: + -
开根号:sqr
-----------------------------------------------------------------------------
两个特殊的运算符
字符串运算符:&和+
使用&时要在变量与&之间加一个空格
作用: 进行字符串连接
关于:“+”运算符 //&只会进行字符串连接,如果是数值型数据就会先转换成字符串型数据,不像+有这么多规

1:当两边都是数值型数据时
123+456 这是+是加法的作用 结果=579
2:当两边有一个是字符型数据时
“123”+456 *这时程序会尝试将字符型的数据转成数值型的数据*
所以这时字符型“123”被转成数值型 123,完成加法运算,还是得到结果= 579
注意这个例子:如 “abcdef”+ 12345 这时 abcdef 无法被程序转成数值型数据
所以结果= 报错!
3:当两边都是字符型数据时
如:“123”+“456”这时+的作用就是字符串连接,而不是加法了
所以得到结果 = “123456”注意这里是字符串型的 123456,而不是数值,因此也不能拿它做算术运算

!!当+和&同时在一个运算时,谁先在左边就先算谁!!
例子:12000+“123” & 100 结果为:“12123100”
//因为先用+将 123 转换成数值型数据,然后 12000+123=12123
//然后 12123 & 100 &将 2 个数值型数据转为字符串型,然后相连!注意表示相加
//最后得到 12123100
例子:12000 & “123”+100
//因为先计算 12000 & “123”,根据原理得到字符串“12123”
//然后“12123”+100,根据原理会变成 12123+100=12223 这个数值结果!
-----------------------------------------------------------------------------
print
print 方法
功能:在窗体上打印文字
如: print 4 或 print “abc”

;(分号):光标定位上一个显示的字符 //分号后面的内容会紧挨着后面的内容
,(逗号):光标定位在下一个打印区开始位处 //简单就是分号离的近,逗号离的远
无;,:换行 //意思就是如果后面没加;或者,就会自动换行
如果想输出 a=10 那就是:print "a=10";a//这里 a 已经赋值等于 10 了,知识点字符串和数值分开就不会乱
-----------------------------------------------------------------------------
输入数据 val
通过文本框进行输入
使用 val 函数 (
//val 函数的作用是将字符型数据转换为数值数据)(如果 a 本身被定义为字符型数据那么就不需要 val 函数,
可以直接:a=Text1.Text)
如:Dim a As Integer
( //因为 text 文本框内输入的其实都是字符串,比如输入 9,其实内部数据是“9” )
a=Val(Text1.Text)//把文本框里面的数据给到 a
-----------------------------------------------------------------------------
ASCll 码
Asc 函数:返回字符的 Ascll 码值 //比如我给它一个字符,他就会返回它对应的 ascll 码值
Chr 函数:返回 ascll 码值对应的字符 //比如我给他一个 ascll 码值,它就会给我对应的字符
-----------------------------------------------------------------------------
=======================================================
关系运算符
<小于 <=小于等于 >大于 >=大于等于 =等于 <>不等于 //优先级相同
关系表达式 只会得到 2 个值 真或假

当 2 个字符进行比较的话,会一对一用 ascll 码进行比较


如:a = “abcde”b = “abea”//这时会一个字符一个字符的比较,看谁的 ascll 码大,如果 a 的字符都大于
b 里的字符,那么结果为真,反之为假
a>b = False //因为 c 跟 e 比较时,e 更大,所以判断为假
Chr 函数:返回 ascll 码值对应的字符 //比如我给他一个 ascll 码值,它就会给我对应的字符
-----------------------------------------------------------------------------
if 语句
//只要非 0,判断都为真
格式 1:if Then //如果表达式成立,则执行语句块
语句块
End if

格式 2:If 表达式 Then //如果表达式成立,则执行语句块,如果不成立,则执行 else 下的语句块


语句块
Else
语句快
End If

if 语句的嵌套//使用和 c 语言差不多
格式:If 表达式 1 Then
语句块 1
ElseIf 表达式 2 Then //注意这里的 Elseif 是一起的,不是 else if
语句块 2
............
end if
-----------------------------------------------------------------------------
逻辑运算符
在 vb 中
And 与运算 (二者必须完全符合)
Or 或运算 (二者之一符合即可)
Not 非运算 (取反)
优先级:Not > And > Or
算术运算符 > 字符运算符 > 关系运算符 > 逻辑运算符

重点知识点 : 区间判断
如表示一个数是否在一个区间[5,10)内,设那数为 8
5<=8<100 是错的!!!!!!!!
正确:a >= 5 And a < 10 //这才是对的
-----------------------------------------------------------------------------
多分支选择语句 select
// =c 语言中的 switch 语句
*!:Is 关系运算符表达式
用 is 来代替 select 中设定的变量
如:is < 60
格式:select case 变量或表达式
case 表达式列表 1
语句块 1
case 表达式列表 2
语句块 2
。。。。。。
【case else //如果都不满足执行这个
语句块 n+1】
End select
-----------------------------------------------------------------------------
扩展内容
可以简化简单的 If-else 结构
格式:
IIf(表达式 1,表达式 2,表达式 3)
就是先判断表达式 1 是否为真,如果为真,就把表达式 1 拿出来用
如果表达式 1 为假,就判断表达式 2 是否为真,以此类推到 3,谁真就拿谁来用
如:a = 3;
b = 6;
c = IIf(a>b,a,b) //因为表达式 1 a>b 为假,所以不考虑,表达式 2 a=3 为真,所以
拿 a 来用,从左到右判断,如果前面判断为真,后面的就不判断了
//所以这里 c = 3
-----------------------------------------------------------------------------
while 循环语句(条件性循环)

格式:while 条件
语句块
Wend
当表达式为真值的时候,执行循环体

控制循环次数:可以用 i = i +1 ,等等类型的方法

循环中的判断:在 while 语句里加 if


-------------------------------------------------------------------------------
补习班内容(待整理)

字符函数:
:Left(x$,n) 功能:从左边取 n 个字符串
right(x$,n) 功能:从右边取 n 个字符串
mid(x$,s1,n2) 功能:从 s1 的位置开始取,取 n2 个 如:mid("abcd",2,2)=bc
text2=mind(text1,7,8)
len(x$) 功能求长度,返回数值性 如:len("abc") = 3 len(text1)
Ucase(x$) 功能将小写字母转换成大写字母 Ucase("abc")=ABC
Ucase(text1)
Lcase(x$) 功能将大写字母转换成小写字母

显示系统现在的时间:time() 如:label1.caption=time()

关于 mod 前面的数小于后面的数,结果为前面的数
如 : 2 mod 7 = 2

循环中的判断:在 while 语句里加 if


-------------------------------------------------------------------------------
**
inputbox("提示信息","标题栏的内容")
如: a=val(inputbox("请输入第一个数: ","1")) 功能:就是输入一个数,将这个数给到 a //不
要忘了将字符型转成数值型,直接 val 或者后面 val a 都行
标题栏的内容可以省略不写,但提示信息必须写

msgbox "提示信息",按钮格式如 0,1,"标题" //可以用& 数值来显示数值,逗号为分隔

循环中的判断:在 while 语句里加 if


-------------------------------------------------------------------------------

a>b>c 不能这样表达,需要用 a>b and a>c

space 空格函数

space(5),5 个空格

tab 也是空格
tab(5),空格 5 下

退出指令:end

关于 timer 计数器控件:
计时器一定要设置初始不开用,就是在右边属性找到 enabled
选择 false,后面再代码中再打开

interval 单位为毫秒 1000 为 1 秒,表示多久为一个事件(必考)

timer.enabled=ture 表示开启 计时器

每隔一秒减一:需要点击计时器,到计时器里面配置代码
label1.caption = label1.captain - 1
if labe1.captain = 0 then
timer1.enabled= false
end if

字符串文字移动:label 属性右边有一个 left 控件,表示往右转移动多少

向右移动 10 个单位:label1.left = label1.left + 10

移到最右边时怎么回到最左边:if label1.left >= form1.width then

label1.left = 0

新窗体
添加新窗体:上面-》工程-》新窗体

怎么 弹出新窗体:代码 form2.show

隐藏窗体:代码 form2.Hide

frame:框架控件 frame.caption 修改名称

单选按钮 option 只能选择一个,复选按钮 check 可以多项

* 单选按钮 option 被选中,value 属性就为 true,没被选中就为 false 如 option1.value= ture


表示单选按钮 1 被选中了

单选按钮也有 enabled 属性,可以去选择 option 单选按钮可以配置 click,就是选中单选按钮后会发生什么,


可以在里编写

修改字体代码:fontname 如:label1.fontname=”黑体“
修改字体大小代码:fontsize 如:label1.fontsize = 16

修改字体颜色代码:forecolor 如:label1.forecolor = 颜色代码

为赋值的变量,初始值为 0

for 循环:

for 循环变量 = 初始值 to 终值 [step 步长] //步长可以是正数可以是负数,但不


能是 0

循环体

next 循环变量 //循环变量必须是同一个字母 next 表示返回到指定循环变量的循


环 如 next i ,就返回到 i 为循环变量的循环

步长的作用 :
就是一下多少步,就是步长
循环变量= 循环变量+步长(初始值为 0) (关于计数和 i 值叠加)
如 step 1 那么就是循环变量+2
如 step -1 那么就是循环变量-1
以此类推

例:for i = 1 to 5 step 1
sum= sum + i
next i //这样就完成了,1+2+3+4+5 的步骤,以此类推

for i = 1 to 100 step 2 //这样子就是求奇数项之和 1+3+5+7+9 的循环叠加,以此类推,步


长的作用
sum = sum + i
next i

for i = 5 to 1 step -1 //这样子就反过来倒着加

5+4+3+2+1

*如何 5-4-3-2-1 以此类推


代码如下:sum=5
for i = 1 to 4 step 1 //为什么是 1to4 ,不是 1 to 5 因为顺序是 5 - 1 -
2 - 3 - 4 //再减 5 不就完了 ,这样子的顺序和前面的 5 - 4 - 3- 2 - 1 是一样的
sum = sum - i
next i

也可以 sum = 5
for i =4 to 1 step -1
sum= sum - i
next i //这样的顺序就是 5-4-3-2-1 了,都行

再算阶乘时,需要给相乘值符初始值 1,需要在循环外面赋值!
如: sum = 1
for i = 1 to 4 step 1
sum = sum * i
next i // 1x2x3x4

如何让一个拆分开的数重合

如 1634 千位 1 百位 6 十位 3 个位 4

1x1000 + 6x100 + 3x10 +4 =1634

判断一个数是不是素数(质数) 如果这个数能被除自己之外的数除,它就不是素数

因为循环来:for 2 to a-1 step 1 //a 是那个要判断的数

完整的程序:a = val(text1.text)
flag = true //先判断他是一个素数,如果后面判断不是再为假

for i = 2 to a-1 step 1


if a mod i = 0 then
flag = false
exit for //退出循环
end if
next i

if flag=true then
print a&; "他是一个素数"
else
print a& "他不是一个素数"
end if
怎么输出一个回车:print //输出一个空的 print 即可

控制打印多少次回车一次,需要在 if 的里面再 if,不能在外面然后才 if

-----------------------------------------------------------------------------------
-----------------------------------
格式输出很重要,一般都用在 print 后面,一定不要忘了输,根据题目选择用法
标准格式输出:print 后面加 逗号,就行了 如:print a,就是标准格式输出 a
紧凑格式输出:print 后面的 分号; 如 print a; 如果不加分号,就会自动换行到下一行,加了分号后面
的内容就会在 a 的同一行输出

-----------------------------------------------------------------------------------
-----------------------------------

do 循环 //条件为真执行循环,条件为假结束循环

Do while 条件

循环语句

loop 一定要在循环内,写出跳出循环的代码

-------------------------------------------------------------------------------
外层循环控制行数,内层循环控制个数,内层循环用外层循环来当条件

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------

listbox : 列表框(左侧控件)** 有分单击事件 clike 和双击事件 dblclike,可以编写双击时发生什么

属性:list 设置和返回框的内容(添加内容)在 listbox 右侧可以找到,也可以在代码中添加


list1.list(序号)="内容" 输出方式之一:print list1.list(3) //输出序号 3 的内容,从 0 开始计

属性:text 被选中的列表框的选项的内容
属性:listindex 当前所选中列表框的序号 从 0 开始计
属性:listcount 计算列表框添加了多少项 如果你添加了 5 个选项,那 list1.listcount
= 5
属性:selected 表示一个选项是否被选中,true 和 false
text1.text = list1.text 可以将选中列表框的内容,移动到 text1 上

在 list 的单击事件下
list1.text = "aa" .....

方法:additem list1.additem 内容 //自动补齐在所写内容的下面,不用写=等于

移动选中的列表框 1 的内容到列表框 2,并删除列表框 1 被选中的内容 list1.removeitem =


(list1.listindex)
***列表框 systle 复选框,怎么把多个选项移到另一个列表框,利用 if 的判断,selectted 的状态,如果为
true 咋移动,不是咋不动

combox : 组合框 输入名称 combo1 combo2

怎么将多个不同地方的内容组合在一起(就是用上& ) : text1.text = combo1.text &


option1.caption & combo2.text

option base 1 让下标从 1 开始,而不是 0,需要在代码通用部分输入

-----------------------------------------------------------

a(5 to 10)表示下标从 5 到 10,对下标进行范围要求

-----------------------------------------------------------
最小值:Min = a(0)
for 1 to 5
if min<a(i) then

min = a(i)
end if
最大值:max=a(0)

for 1 to 5
if max>a(i) then

max= a(i)
end if

平均分:总分-最高分-最低分 /除以 8 (s-min-max)/8

------------------------------------------------------------
怎么让文本框 text 的内容叠加在一起,就是不覆盖它,输出多个不同数
只需要:text1.text = text1.text & a(i) & space(2) //这样子尽快,a(i)是要输出的数
千万注意不要用加号相连,要用&,space(2)是输出 2 个空格,里面数字是几就是输出几个空格
------------------------------------------------------------

字符串反转:StrReverse()就是将字符串反归来,如 abc 就变成 cba,如 123 就变成 321


可以利用这个函数完成回文数题,或者 if a(i) mod 10 = a(i) / 100 then
---------------------------------------------------------------
!!!!!!!!!
为什么一个数据在一个按钮里创建,却无法在另一个按钮里使用
因为他们是 2 个作用域,所以需要在通用作用域下,创建才可以通用

考试的时候,运行前要保存!!!!!!!
---------------------------------------------------------------
随机因子
***********************!!!!!!!!!!!!!!!
在创建随机数的时,一定一定!!要加随机因子 Randomize 才能实现每次随机的不同

使用方法:就是在 rnd 前任意空白处输入 randomize 即可

---------------------------------------------------------------

关于 combox 组合框 右边有 style 的属性 表示:组合框的不同模板 0~2

0 和 1 的组合框都能输入内容,2 不行,2 只能在右边属性时添加

style
总结 0 :可以下拉(有列表框的功能),可以输入(有文本框的功能)
1: 不可以下拉(没列表框的功能),可以输入(有文本框的功能)
2 :可以下拉(有列表框的功能),不可以输入(没有文本框的功能)
---------------------------------------------------------------

求约数: 就是求这个 数 能被多少个 数 整除

平方和:就是自己乘自己 比如 2 的平方和就是 4
---------------------------------------------------------------

千万千万 tmd 分清楚 除和整除!! 一个是除/ 一个整除\

退出循环:exit for

--------------------------------------------------------------------
**
列表框多选 首先:需要先点击列表框,然后找右边找到 multiselect 把 0 改为 1

然后最重要的一步看代码
For i = List1.ListCount - 1 To 0 Step -1
If List1.Selected(i) = True Then
List2.AddItem List1.List(i)
List1.RemoveItem i
End If
Next i

利用循环加上列表框的 selected 来判断哪几个选项被选中,然后把选中的选项移到另一边的列表框

最重要的是:列表框的循环要从下到上,就是从最大的到最小的

为什么?:因为假如你是从小到大,你移动了一个选项到另一个列表框,你的序号就变小了,值不匹配,然后
就会出错
但是如果从大到小,就不会有这个问题,你序号变小,跟我从大到小没影响

--------------------------------------------------------------------

很重要,重点研究
format:格式输出函数
格式:format(需要被格式化的内容,格式化方式)
功能:用于控制输出数据的格式!

字符:0 功能:数字占位符,显示一位数字或是零,如果字符串中 0 的位置上有一位数字存在,那么就显示该


数字,否则就为 0
如:Format(2,"00")= 02 format(12345,"00") = 12345//如 0 没超过本身的数长度,那么只
显示本身的数
Format(12345,"0000000")= 0123450

字符 # 功能:数字占位符 显示一位数字或者什么都不显示,就是占着这个位置,有数就显示数,没数就占着

字符 % 功能:百分百占位符,系统将表达式的值乘以 100,然后将 % 插到值后面的位置,注意只要输入一


个%就好,其他用#占位
如:Format(0.4,"##%") = 40% Format(0.155,"#.##%") = 15.5%

字符 dddddd 功能:显示完整的日期(年,月,日) 如:Format(date,"dddddd") = 2022 年 3 月 13 日


//有的系统还会显示星期几

字符 yyyy 功能:显示年
字符 mm 功能:显示月
字符 dd 功能:显示日
字符 hh 功能:显示小时
字符 nn 功能:显示分钟
字符 ss 功能:显示秒
字符 AMPM 功能:如果是上午就会显示上午,如果是下午就会显示下午

字符 @ 字符占位符 功能:有字符显示字符,没有字符显示空格 //注意只会往左边补空格,注意前面的数字占


位符,这个是字符占位符
如:format("abc","@@@@@") = 空格空格 abc

字符 < 功能:强制小写 如:format("ABC",<@@@") = "abc"


字符 < 功能:强制大写 如:format("abc",<@@@") = "ABC"

字符 ! 功能:强制右补空格,原本@没有字符就会补空格,但是只能在左边补,加上这个就会往右边补了
如:format("abc""!@@@@@") = abc 空格空格

例子:今天是 2022 年 3 月 13 日
Format(now,"yyyy 年 mm 月 dd 日")
“今天是”& Format(now,"yyyy 年 mm 月 dd 日")

今天上下午是 2022 年 3 月 13 日 10 时 13 分 28 秒
Format(Now,"今天 AMPM 是 yyyy 年 mm 月 dd 日 HH 时 MM 分 SS 秒")

--------------------------------------------------------------------

冒泡法:看大纲最下面最下面就有
--------------------------------------------------------------------

考试常用的函数,一定都要记住!!!!!

date 日期
time 时间
Now 日期+时间
year(now) 取现在的年份 如 2022
Hour(now) 取现在是几点(小时),不含分钟 如:22

Int(x)功能:求整数,规则:大于 0 时,不管小数点后面是多少,都会变成前面的整数 如:int(3.9) = 3


int(3.1) = 3 int(3) = 3
当小于 0 时,除了没小数点外,不管小数点后面是
多少,都会变成前的负数加 1(即减一) 如:int(-3.1) = -4 int(-3.9) = -4 int(-4) = -4

fix(x):功能:不管小数点后面是多少,都取其整数 如:fix(-5.99) = -5 fix(5.99) = 5

Round(x,n)将 x 四舍五入,保留 n 位小数,n 默认为 0


如:Round(3.8) = 4
Round(3.1) = 3

String(个数,“字符串”) 连续输出函数 输出字符串的第一个字符 如:string(5,"草") = 草草草草草


string(5,"卧槽") =卧卧卧卧卧

Ltrim(S) : 去掉 S 左边的空格 如:Ltrim(" abc") = "abc"


Rtrim(S): 去掉 S 右边的空格 如:Rtrim("abc ")= "abc"
但是 tm 还有一个
Trim(S):去掉 S 俩边的空格 如 Trim(“ abc ”)= "abc"
吐槽下:有 trim 了还要 Ltrim 和 Rtrim 干嘛,浪费时间啊 操!

*****
操操操,我现在才知道,vb 可以直接判断大小写,不用转换成 acsll 码再判断
如 if S1 >= "a" and S1 <="z" then
if S1 >= "A" and S1 <="Z" then
这样就可以完成大小写的判断了

Ucase(x):将字符串 x 中所有字母转换为大写,其他不变

Lcase (x):将字符串 x 中所有字母转换为小写,其他不变

Asc(x) :将 x 转换为 ascll 码 如:Asc(A) = 65


chr(x):将 x 转换为 ascll 字符 如:chr(65)= A

****
Mid(S,m,n) :从 S 中的第 m 个字符开始取 n 个字符 如:Mid("ABCDE",3,1) = C
注意:也可以用 mid 来取数字 如:Mid(123456,3,1) = 3 但是这时取出来的数据是字符串类型的!!
要先用 val 转换成 数值类型的才能当成数字使用!!

大写 A~Z ascll 码是从:65~90


小写 a~z ascll 码是从:97~122

Abs(x) : 返回 x 的绝对值
如:abs(-88)=88

sqr(x) :开根号
如:sqr(4)=2

求正负号 用 sgn 函数
sgn(x) :返回 x 的符号 即:
当 x 为负数时,返回-1
当 x 为 0 数时,返回 0
当 x 为正数时,返回 1
如:sgn(66) = 1
sgn(-66) = -1
sgn(0) = 0

IsNumeric() 函数
功能:判断输入的是不是数字,如果是数字返回真,如果不是数字返回假
如:isnumeric("abc") = false isnumeric(123)=true

--------------------------------------------------------------------
静态变量 static :只有程序退出或窗体关闭时,数据才释放

如 static a as integer ,就定义了静态变量 a

--------------------------------------------------------------------

关于阶乘的阶乘!!!

如:5 的阶乘的阶乘就是:1!+2!+3!+4!+5!

代码实现如下:
Dim a As Integer, i As Integer, sum As Double, j As
Integer, supersum As Double

a = Val(Text1.Text)
sum = 1
For j = 1 To a
For i = 1 To j
sum = sum * i
Next i
supersum = supersum + sum
sum = 1
Next j
Label2.Caption = a & "的阶乘的阶乘是:" & supersum

文件夹里有例子,其实很简单

--------------------------------------------------------------------
求最大公约数和最小公倍数

最大公约数:
m = Val(Text1.Text)
n = Val(Text2.Text)
If m < n Then
j = m
m = n
n = j
End If
r = m Mod n
Do While r <> 0
m = n
n = r
r = m Mod n
Loop
Text3.Text = Str(n)

最小公倍数: 等于 val(text1.text) * val(text2.text) \ 最大公约数

// 看上面就知道了,就是你输入的那 2 个数,除你的最大公约数

// 注意必须是最初始的数,不能是后面改过的,记住

--------------------------------------------------------------------

求素数: 素数是:只能被本身和 1 除的数,就是素数 质数就是素数,素数就是质数

大概思路就是从 2 开始一直除到本身-1 ,如果都不能被除,那这个数就是素数

比如 5 5 mod 2 <>0 5/3 <>0 5/4 <>0 都不行,那 5 就是素数

例题:求 100 内的素数

Dim sushu As Integer

Dim i As Integer, j As Integer, x As Integer

For i = 1 To 100

sushu = 1 //先假设这个数是素数,如果这个数不是素数,那么就让它为 0 ,1 为真,0 为假

For j = 2 To i - 1 '求素数必须要大小 1 开始,所以从 2 开始循环,因为素数不包括本身,所以循


环到最后的值都要-1
If i Mod j = 0 Then sushu = 0 '如果能整除就不是素数,此时让 sushu 等于 0,接下来就可以根据
它为条件,去输出素数

Next j

If sushu = 1 Then Print i; ' 如果是素数,就在窗体上输出素数

Next i
--------------------------------------------------------------------

"文本框"中如何判断,使用者是否输入了回车!
1:首先双击文本框进入设置单击命令页面,在上面 2 个大框中,选择右边的那一个 click,下
拉,找到 keypress
2: 在 keypress 下面通过检查他的 Ascii 码来确定,使用者是否输入了回车
代码:If KeyAscii = 13 Then MsgBox "你敲了回车键!"
3:即 如果 KeyASCII = 13 即使用者输入了回车

--------------------------------------------------------------------

cls :清屏

--------------------------------------------------------------------
DateDiff("要求的时间格式","开始时间","结束时间")
功能:求天数 or 求秒数 or 求年数

如:Print DateDiff("d", "2022-05-13", "2022-05-16")


结果:输出 3

“yyyy”:年
“s”:秒
“d” : 天

--------------------------------------------------------------------

文本框属性:
1:locked 是否可以编辑文本框 默认 false 可以编辑
如:Text1.locked = true 就是给文本框上锁不可以编辑

2:Maxlength 最大长度设置

3:multiline 只能单行输入不可以换行 默认 false

4 : passwordchar 默认为空
text1. passwordchar = “*” 文本框打出的就都出*

文本框隐藏 visible
如:text1.visible = not text1.visible 即隐藏文本框
--------------------------------------------------------------------

--------------------------------------------------------------------
redim 动态定义,定义数组时要用!
如:ReDim n(k, p) As Long

RGB 函数,控制颜色的
有三原色,控制各种颜色
格式:rgb(255,255,255) 左到右是红,绿,蓝

vbCrLf 用于在 label 或者 text 中实现换行,直接& vbCrLf 即可

--------------------------------------------------------------------
杨辉三角形

'杨辉三角形
'首先要创建一个二维数组,和相应的变量
'例子先用规定值,实际中可以动态控制行和列
Dim k, p, i, j As Long

'杨辉三角形的 k 是行,p 是列
'列的固定公式是 2 * k -1
k = 5
p = 2 * k - 1

'这个数组很重要,控制的三角形的行和列
ReDim n(k, p) As Long

'现在要给杨辉三角形赋值
'首先要明白,杨辉三角形的一行的初始值一定是 1,最后一行的最后一列的初始值也是 1
'所以我们先把固定值,给初始化
'一行的初始值的列固定公式为 p / 2 + 1
n(1, Int(p / 2) + 1) = 1

'i 要从 2 开始,为什么?因为第一行已经赋值了,就不用再赋值了
For i = 2 To k
'为什么 p 要减 1,因为如果不减 1,数值循环就会溢出
For j = 1 To p - 1
'下面这段公式是什么意思:因为杨辉三角形的下面一个值是,上行的这个位置的左边(j-1),和右边
(j+1)的值相加,所以是这个公式
n(i, j) = n(i - 1, j - 1) + n(i - 1, j + 1)

Next j

Next i

'别忘了还有一个最后一个初始值要赋值
n(k, p) = 1

'最后输出杨辉三角形即可

For i = 1 To k
For j = 1 To p
'让我们把 0 变成空格,所以判断为 0,就打印空格,打印三个空格是为了美观
If n(i, j) = 0 Then
'还有千万不要忘了,紧凑格式输出;
Print Spc(3);
Else
Print n(i, j);
End If

Next j

'打完一行,要换行
Print

Next i

End Sub
--------------------------------------------------------------------

关于滚动条

横向滚动条 Hscroll
纵向滚动条 Vscroll

滚动条要设置一个最小值和最大值:min 和 max,在控件旁边设置
表示:滚动的范围变化
比如我要设置字体随着滚动变大变小,最小的字体为 8 号,最大的为 100
那么我们就要 min 设置成 8,max 设置成 100

滚动条代码设置,要在 change 事件下去写,点一下滚动条就会出现的那个页面

怎么让字体随着滚动变大变小 代码:label.Fontsize = Hscroll1.value 即可


Fontsize 是字体大小+的值,value 的滚动条的当前值,即滚动条的值发生改变时,字体大小的值也改变

怎么让字体颜色随着滚动变化深浅
比如我们要让蓝色深浅
就:label1.Forecolor = rgb(0,0,Vscroll1.value)

滚动条属性
:value 表示滚动条当前所在的位置(即当前的值)
: largechange 表示点击滚动条中间空白的那个位置,每次变动多少 value 值
: smallchange 表示滚动条有指向标(箭头)的那个位置,每次变动多少 value 值

滚动条还有一个 scroll 事件
即:每次拉动滚动条发生什么

You might also like