a = InputBox("what is your name :") MsgBox ("my name is:") & a
dim a as string
数据类型:字节型(Byte),整数型(Integer),长整数型(Long),单精度浮点型(Single),双精度浮点型(Double),货币型(Currency),小数型(Decimal),字符串型(String),日期型(Date),布尔型(Boolean)等python
1.搞条件判断:app
if Then Else(二重)
if Then ElseIf(三重以上选择)
select case....is函数
Public Sub mysub() x = InputBox("输入x的值:") Dim fx As Double If x <= 0 Then fx = x ^ 2 ElseIf x <= 1 And x > 0 Then fx = x ^ 3 ElseIf x > 1 Then fx = x ^ 4 End If MsgBox fx End Sub
2.搞循环spa
for....nextexcel
Public Sub mysub() Dim i As Integer, xj As String For i = 2 To 17 Step 1 Select Case Cells(i, "A") Case Is < 60 xj = "不及格" Case Is >= 60 xj = "及格" End Select Cells(i, "B") = xj Next i
模块-插入-过程-函数(注意一个模块插一个函数)
1.定义f(x)=x^2+1code
Public Function fun(x) fun = x ^ 2 + 1 End Function
在excel直接在空格打=fun(3)之类可调用自定义函数(跟python好像啊啊啊啊)
2.例:生成1——10的随机数orm
Public Function fx() fx = Int(Rnd() * 10) + 1 End Function
application:应用程序
workbook:工做簿
worksheet:工做表
range:单元格。
例:对象
'A1单元格为10,完整写法 Worksheets("sheet1").Range("A1").Value = 10 'A2到A3为6 Range("A2:A3") = 6 '更简单的写法[] [B2] = 2 [C2:C10] = 10 '引用整行 Rows("4:5").Value = 100 '引用整列 Columns("F:G").Value = 88 '合并使用 Union(Range("D2"), Range("E4")) = 7
源文件下载:职员信息管理
目标:根据职员的编号或身份证作一个小型的职员信息查找器
代码:图片
Option Explicit Dim nrow As Long '定义一个模块级的变量,让该模块里的全部过程都能使用它 Private Sub CmdFind_Click() '单击“查询”按钮时运行程序 '判断按什么方式进行查找 Dim col As Integer If FindName.Value = True Then col = 7 '若是按身份证号查找,则查找第7列 Else col = 1 End If With Worksheets("职工档案") Dim rng As Range '在查找列查找输入的关键字 Set rng = .Columns(col).find(FindText.Value, lookat:=xlWhole) If Not rng Is Nothing Then '判断是否找到内容匹配的单元格 nrow = rng.Row '取得查找到的单元格的行号 Call findi '运行findi子过程 Else MsgBox "没有找到符合条件的记录!" End If FindText.Value = "" '清除查找框中输入的数据 End With End Sub Private Sub CmdAdd_Click() '单击“新增”按钮时运行程序 '判断在对话框中按下哪一个按钮 If MsgBox("肯定修改“职工档案”中添加该员工的记录吗?", vbQuestion + vbYesNo, "询问") = vbYes Then '取得第一条空行行号 nrow = Worksheets("职工档案").Range("A1").Range("A1").CurrentRegion.Rows.Count + 1 Call edit '运行edit过程 End If End Sub Private Sub CmdDel_Click() '单击“删除”按钮时运行程序 '判断在对话框中按下哪一个按钮 If MsgBox("肯定将该员工信息移动到“删除”工做表中吗?", vbQuestion + vbYesNo, "询问") = vbYes Then '取得当前“职工编号”所在的行号 nrow = Worksheets("职工档案").Range("A1:A65536").find(Range("C7").Value, lookat:=xlWhole).Row '把记录复制到“删除”工做表中 Worksheets("职工档案").Rows(nrow).Copy Worksheets("删除").Range("A65536").End(xlUp).Offset(1, 0) '删除该条记录 Worksheets("职工档案").Cells(nrow, "A").EntireRow.Delete End If End Sub Private Sub CmdEdit_Click() '单击“修改”按钮时运行程序 '判断在对话框中按下哪一个按钮 If MsgBox("肯定修改“职工档案”中该员工的信息吗?", vbQuestion + vbYesNo, "询问") = vbYes Then '取得当前“职工编号”所在的行号 nrow = Worksheets("职工档案").Range("A1:A65536").find(Range("C7").Value, lookat:=xlWhole).Row Call edit '运行edit过程 End If End Sub Private Sub CmdFirst_Click() '单击“第一条”按钮时运行程序 nrow = 2 '行号等于2 Call findi '运行findi过程 End Sub Private Sub CmdEnd_Click() '单击“最后一条”按钮时运行程序 '取得最后一条记录的行号 nrow = Worksheets("职工档案").Range("A1").CurrentRegion.Rows.Count Call findi '运行findi过程 End Sub Private Sub CmdFormer_Click() '单击“上一条”按钮时运行程序 '取得当前“职工编号”所在行的上一行行号 nrow = Worksheets("职工档案").Range("A2:A65536").find(Range("C7").Value, lookat:=xlWhole).Row - 1 Call findi '运行findi过程 End Sub Private Sub CmdNext_Click() '单击“下一条”按钮时运行过程 '取得当前“职工编号”所在行的下一行行号 nrow = Worksheets("职工档案").Range("A1:A65536").find(Range("C7").Value, lookat:=xlWhole).Row + 1 Call findi '运行findi过程 End Sub Sub findi() '子过程 '将“职工档案”中nrow行的记录写入“查询”表中 With Worksheets("职工档案") Range("C7:E7").Value = .Range(.Cells(nrow, 1), .Cells(nrow, 3)).Value Range("C10:E10").Value = .Range(.Cells(nrow, 4), .Cells(nrow, 6)).Value Range("C13").Value = .Cells(nrow, 7).Value Range("E13").Value = .Cells(nrow, 8).Value Range("C16:E16").Value = .Range(.Cells(nrow, 9), .Cells(nrow, 11)).Value Range("C19").Value = .Cells(nrow, 12).Value End With End Sub Sub edit() '子过程 '将查询表中的记录添加到nrow行中 With Worksheets("职工档案") .Cells(nrow, "A").Resize(1, 3) = Range("C7:E7").Value .Cells(nrow, "D").Resize(1, 3) = Range("C10:E10").Value .Cells(nrow, 7).Value = Range("C13").Value .Cells(nrow, 8).Value = Range("E13").Value .Cells(nrow, 9).Resize(1, 3).Value = Range("C16:E16").Value .Cells(nrow, 12).Value = Range("C19").Value End With End Sub