VBA的一点东西

因为帮一个朋友弄excel中的一些数据处理,然后用到了VBA的编程。其中要点如下:


Sub MyFirstVBAProgram() Dim strName As String ‘ As String 定义了变量的数据类型 Dim strHello As String strName = InputBox(“输入名字:”) strHello = “你好,” & strName & “!” MsgBox strHelloEnd SubFunction MyAdd(varA, varB) As Variant MyAdd = varA + varBEnd FunctionSub TestAdd() Dim a,b,c a = 12 b = 34 c = MyAdd(a,b) MsgBox cEnd SubPublic Function Shipping(Price) Shipping = Price * 0.1End Function’ 注释VBA中的数据类型Byte 0 – 255Bollean True 或者 FalseInteger -32768 – 32767Long SingleDoubleDate String(变长)Variant 是一个特殊的数据类型,可以表示任意类型的数据,对于没有定义数据类型的变量,默认为这个类型创建变量 使用Dim语句 Dim 变量名 As 数据类型& 表示连接两个字符串+ 也可以用来表示连接两个字符串运算符 ^(某次方) * / \(整除) Mod + -Function Add(a As Double, b As Double) As Double最后一个As Double表示返回值的类型,返回值为Add条件语句If T < 2 Then Target = 200ElseIF T >= 2 And T < 3 Then Target = 300Else Target = 500End If注意,在判断值相等时候,用的是=号逻辑运算符 And Or Not循环语句 Dim i As Long Dim sum As Long For i = 1 To 8 Step 2 sum = sum + i Next i ‘ 循环结束 DO While count <= 100 sum = sum + count count = count + 1 LOOPExit提前结束循环 For i = 1 To 100 If i = 50 Then Exit For End If Next i嵌套循环中,Exit语句会退出他所在的那层循环,而不会退出其他循环ActiveSheet.Cells(i,j).Value为Excel对象,ActiveSheet表示当前的数据表,Cell(i,j)表示数据表的第i行第j列的单元格,Value表示单元格的值。数组 Dim Months(11) As String Months表示数组名称,11表示数组的最大索引,String为元素类型_ 可以将几行代码算作一行,相当于\Rnd是VBA的函数,返回一个0到1之间的平均值Application对象代表了Excel程序,通过Excel的Application对象,可以操作当前激活的工作薄,工作表或者活动单元格将活动工作表的第一行第二列的单元格设置为当前时间Application.ActiveSheet.Cells(1,2) = TimeActiveCell.Value 表示当前活动单元格的值Workbok对象代表Excel的一个工作薄,通过Workbok可以得到工作薄中的工作表(Sheets),获得当前工作薄的名称,保存路径,保存工作薄等。Application.ActiveWorkbok.Save ‘ 保存工作薄WorksheetWorksheet对象代表了一个工作表,可以进行拷贝、粘贴、打印等工作Range对象代表工作表的一个单元格或者单元格区域Worksheets(“Sheet1”).Range(“A1″).Value = 20Range的Value属性可以返回Range的值,如果是一个单元格,那么就是一个具体的数值或者字符串,如果是一个单元格区域,则返回一个数组。同样,我们可以通过Value属性给Range赋值将第一列和第二列的单元格的内容连接之后,赋值给第三列 Sub MergeTest() Dim i As Long For i = 3 To 30 Cells(i,3) = Cells(i,1) & ” ” & Cells(i,2) NextEnd Sub使用Application对象的Cells属性来返回表格数据(Application可以省略)使用VBA操作工作表单元格 [A1] = 100 ‘ 在A1 单元格输入100 [A2:A4] = 10 ‘ 在A2:A4单元格输入10 Range(“B1”) = 200 Range(“C1:C3”)=300 Cells(1,4) = 400 ‘ 在D1单元格输入400 Range(Cells(1,5),Cells(5,5)) =50 ‘ 在E1:E5单元格输入50在单元格D1:D20中循环,将所有绝对值小于0.1的数字都设置为0 Sub RoundToZero() Dim i As Long Dim rCell As Range For i = 1 To 20 Set rCell = Worksheets(“Sheet2”).Cells(i, 4) If IsNumeric(rCell.Value) Then If Abs(rCell.Value) < 1# Then rCell.Value = 0 End If End If Next i End Sub

学会技能是小智慧,学会做人是大智慧。

VBA的一点东西

相关文章:

你感兴趣的文章:

标签云: