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....next
excel
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