文章目录
- case
- with
- 数组
- split拆分,UBound UBound返回数组最大的下标
- CDbl,返回为double类型
- CStr,返回为string类型
- Chr 输出ASCII十进制对应的字符
- Date & Space(2) & Time & _Chr(13) & "Happy New Year!" & "I am Wu Song." '连接符&,换行符空格加下划线,Space(2)是空2格
- 全路径,该路径下的第一个文件名,只返回文件名,Dir
- 此盘是否存在,Dir
- 当前激活的文件名
- 得不包含扩展名的Part2
- 取整数部分,不四舍五入
- 将数组元素,按;链接起来,形成一个字符串
- like
- 文件类型TypeName,LCase是变小写字母,反之是uppercase
- Mod 取余数
- if not,or
- Replace替换
- Round保留小数点后几位,四舍五入
- case
- 延时
- Trim去掉空格
- type 类型
- 取小数点后几位,功能和Round函数一样
case
有时候,作决定是基于测试表达式的条件,例如它是否大于,小于,等于或使用一些其它的关系运算符。关键字Is使你能够在Case子句里使用条件表达式。使用关键字Is的SelectCase语句的语法如下:
Select Case myNumber
Case Is <10
MsgBox "The number is less than 10"
Case 11
MsgBox "You entered eleven."
Case Is >=100
MsgBox "The number is greater than or equal to 100."
Case Else
MsgBox "The number is between 12 and 99."
End Select
确定Case子句里数值的范围:
Select Case unitsSold
Case 1 to 100
Discount = 0.05
Case Is <= 500
Discount = 0.1
Case 501 to 1000
Discount = 0.15
Case Is >1000
Discount = 0.2
End Select
在Case子句里确定多个表达式:
Select Case myMonth
Case "January", "February", "March"
Debug.Print myMonth & ": 1st Qtr."
Case "April", "May", "June"
Debug.Print myMonth & ": 2nd Qtr."
Case "July", "August", "September"
Debug.Print myMonth & ": 3rd Qtr."
Case "October", "November", "December"
Debug.Print myMonth & ": 4th Qtr."
End Select
Case子句的多个条件
用来分隔开Case子句里面多个条件的逗号,和用于If语句里的运算符OR意义一样。只要这些条件有一个为真,Case子句就为真。
with
数组
Sub dd() '数组
Dim arr(2, 1 To 2)
a = 10
b = 8
c = 4
arr1 = Array(1, 2, 3, 4)
arr2 = Array(Array(1, 2), Array(a, "b", c))
End Sub
split拆分,UBound UBound返回数组最大的下标
Sub D()
Dim myarr() As String
myarr = Split("FileName.CATPart", ".") '按.拆分,结果给数组myarr
If UBound(myarr) > 0 Then 'UBound返回数组最大的下标
GetFileextension = myarr(UBound(myarr))
MsgBox myarr(0)
End If
arr1 = Array(Array("a", "b"), Array(1, 2, 3))
MsgBox arr1(0)(0) 'a
MsgBox arr1(1)(0) '1
End Sub
CDbl,返回为double类型
Sub aa()
Dim iv As Integer
iv = 5
CHufDblToDbl = CDbl(iv) '返回为double类型,
End Sub
CStr,返回为string类型
Sub aga()
m = CStr(3 / 2) '返回为string类型,结果为1.5
End Sub
Chr 输出ASCII十进制对应的字符
Sub d4d()
m = Chr(44) '输出ASCII十进制对应的字符,此处是逗号,
MsgBox m
End Sub
Date & Space(2) & Time & _Chr(13) & “Happy New Year!” & “I am Wu Song.” '连接符&,换行符空格加下划线,Space(2)是空2格
Private Sub userform_Activate()
Dim s As String
s = Date & Space(2) & Time & _
Chr(13) & "Happy New Year!" & "I am Wu Song." '连接符&,换行符空格加下划线,Space(2)是空2格
MsgBox s
End Sub
全路径,该路径下的第一个文件名,只返回文件名,Dir
Sub ddd()
Set odoc = CATIA.ActiveDocument
MsgBox odoc.FullName '全路径
ss = Dir(odoc.FullName) '该路径下的第一个文件名,只返回文件名
End Sub
此盘是否存在,Dir
Sub jk()
MsgBox Dir("D:\", vbDirectory) '指明vbDirectory,所以查找的是该盘下的第一个文件夹,否则是第一个文件
If Dir("D:\", vbDirectory) <> "" Then
MsgBox "此盘存在"
Else
MsgBox "此盘不存在"
End If
End Sub
当前激活的文件名
Function mas() '函数返回当前激活的文件名
mas = CATIA.ActiveDocument.Name
End Function
得不包含扩展名的Part2
Sub nameUsss()
n = InStr(mas, "CATPart") 'Part2.CATPart,从1开始数CATPart在第7个字符开始,
name13 = Left(mas, n - 2) '去掉.C,所以是减2,取左边的字符,得不包含扩展名的Part2
MsgBox name13
l = Len(name13) '求字符的长度5
End Sub
取整数部分,不四舍五入
Sub int1()
m = 3.9415
integer1 = Int(m) '取整数部分,3
MsgBox integer1
End Sub
将数组元素,按;链接起来,形成一个字符串
Public Sub changeBackgroundcolor()
Dim CurrentBackgroundColorArrVar(2) As Variant
Set Viewer3D = CATIA.ActiveWindow.ActiveViewer
Viewer3D.GetBackgroundColor CurrentBackgroundColorArrVar
currentBackgroundString = Join(CurrentBackgroundColorArrVar, ";") '将数组元素,按;链接起来,形成一个字符串
End Sub
like
Sub catmain()
mycheck = "B" Like "[A-E]" 'B包含在A到E中,返回布尔型true
MsgBox mycheck
End Sub
文件类型TypeName,LCase是变小写字母,反之是uppercase
Sub d5dd()
rq = TypeName(CATIA.ActiveDocument) '文件类型,此处为PartDocument
mm = LCase(rq) 'LCase是变小写字母,反之是uppercase
End Sub
Mod 取余数
Sub ddr()
m = 5 Mod 2 '取余数,1
MsgBox m
End Sub
if not,or
Sub kjk()
I = 1
'If I <> 0 Then
If Not I = 0 Then '不等于的两种表示
MsgBox "yes"
End If
If j = 0 Or j = 1 Or j = 2 Then '没有对j初始化,默认是0
MsgBox "Yes"
End If
End Sub
Replace替换
Sub aaee()
Dim a As String
a = "ljljgaljge"
m = Replace(a, "j", "1") '将a中的j替换成1.可以用于重命名文件
MsgBox m
End Sub
Round保留小数点后几位,四舍五入
Sub jkj()
I = 3.1415926
n = Round(I, 4) '保留小数点后4位,四舍五入,为3.1416获取到部件的坐标点后,需要保留到第几位,会用到
End Sub
case
Sub j()
I = 5
Select Case I
Case Is = 5 '用Is,而不是用变量I
my = "aaa"
Case Is > 5
my = "bbbb"
Case Else
MsgBox "wrong option", vbOKOnly, "warning"
Exit Sub
End Select
End Sub
延时
Sub mydela7y()
t = Time '具体时间
t = Timer '时间的秒数表示
Do While Timer - t < 5 '5秒内在这个循环里,相当于延时5秒
DoEvents
Loop
MsgBox "是5秒吗"
End Sub
Trim去掉空格
Sub ded()
Dim D
Dim xx
D = " mys trim "
xx = Trim(D) '将前后的空格都去掉,中间的空格不会去掉
MsgBox xx
End Sub
type 类型
Type EmployeeRecord 'type 类型的定义,必须在顶部
ID As Integer
Name As String * 20
Address As String * 30
Phone As Long
HireDate As Date
End Type
Sub createRecord() 'type类型的使用
Dim myrecord As EmployeeRecord
myrecord.ID = 12345
End Sub
取小数点后几位,功能和Round函数一样
Sub ff() '取小数点后几位,功能和Round函数一样
ddd4 = 125.364
edd = CInt(ddd4 * 10) '1254,取整,四舍五入
ee = CInt(ddd4 * 10) / 10 '125.4
MsgBox (ee)
End Sub