Microsoft Excel是Microsoft為使用Windows和Apple Macintosh操作系統的電腦編寫的一款電子表格軟件。直觀的界面、出色的計算功能和圖表工具,再加上成功的市場營銷,使Excel成為最流行的個人計算機數據處理軟件。 選擇一個工作表: Sheets("Balance").Activate. 選擇單元格: Range("A1").Select 選擇連續的單元格: Range("A1:G8").Select 選擇不連續的單元格: Range("A1,B6,D9").Select Range("A1,B6:B10,D9").Select 選擇當前活動的工作簿: ThisWorkbook.Activate 如果選擇其他工作簿,注意該工作簿一定是打開的,并且不要忘記加上后綴“.xls” ,例如: Windows("Totol.xls").Activate 選擇一個工作表: Sheets("Balance").Activate. 單元格間移動: ActiveCell.Offset(13, 14).Select Selection.Offset(-3, -4).Select Range("G8").Offset(-3, -4).Select 注意:你可以定義一變量,并且用offset來實現,例如: varFreightRowsCount = Range("A1").CurrentRegion.Rows.Count ActiveCell.Offset(varFreightRowsCount, 0).Select 選擇整個工作表: Cells.Select 選擇當前單元格所在的區域 (遇到空行 / 空列即止): Range("A1").CurrentRegion.Select 選擇行或列: Rows("1").Select Columns("A").Select 或者: ActiveCell.EntireRow.Select ActiveCell.EntireColumn.Select 選擇相鄰的多行/多列: Columns("A:C").Select Rows("1:5").Select 選擇不相鄰的多行/多列: 注意:和選擇相鄰的多行/多列不同,使用"Range"而不是"Columns/Rows": Range("A:A, C:C, E:F").Select Range("1:1,5:6,9:9").Select 選擇當前活動單元格向下至最后一個非空單元格: Range("A1", Range("A1").End(xlDown)).Select Range(ActiveCell, ActiveCell.End(xlDown)).Select 選擇當前活動單元格向上至第一個非空單元格: Range("A32", Range("A32").End(xlUp)).Select Range(ActiveCell, ActiveCell.End(xlUp)).Select 選擇當前活動單元格向右至第一個非空單元格? 注意:是 "xlTORight"而不是 "xlRight" Range("A1", Range("A1").End(xlToRight)).Select Range(ActiveCell, ActiveCell.End(xlToLeft)).Select 選擇當前活動單元格向右至第10個單元格? Range("A2", Range("A2").Offset(0, 10)).Select Range(ActiveCell, ActiveCell.Offset(0, 10)).Select 選擇當前活動單元格向左至第10個單元格? Range("A20", Range("A20").Offset(0, -10)).Select Range(ActiveCell, ActiveCell.Offset(0, -10)).Select 選擇當前活動單元格向下至第10個單元格? Range("a2", Range("a2").Offset(10, 0)).Select Range(ActiveCell, ActiveCell.Offset(10, 0)).Select 選擇當前活動單元格向上至第10個單元格? Range("A1").End(xlDown).Offset(1, 0).Select 選擇該行中第一個空單元格: Range("A1").End(xlToRight).Offset(0, 1).Select 改變區域的大小(由 A1:B5 變為 A1:D10):注意:改區域并不是向外擴張,而是重新定義了。即“Selection.Resize(10, 4).Select而不是Selection.Resize(5, 2).Select Excel的宏不能記錄移至當前行的第一個單元格的動作(即你按下“Home”鍵的動作),下面的語句則可以做到: ActiveCell.Offset(0, -ActiveCell.Column + 1).Select 移至當前列的第一個單元格: ActiveCell.Offset(-ActiveCell.Row + 1, 0).Select 關于If..Then...EndIf 如果只有一個條件及一個動作,你可以用以下語句: If Selection.Value > 10 Then Selection.Offset(1, 0) = 100 End If 或者更簡單的: If Selection.Value > 10 Then Selection.Offset(1, 0) = 100 如果有兩個條件及兩個動作,你可以用下面的語句 If Selection.Value > 10 Then If Selection.Value = 12 Then Selection.Offset(1, 0) = 100 End If Selection.Offset(1, 0) = 20 End If 關于If..Then...And...EndIf 當有雙重條件和一個動作時,你可以用下面的語句: If Selection.Value = 10 And Selection.Offset(0, 1).Value = 20 Then Selection.Offset(1, 0) = 100 End If 關于If..Then...Or...EndIf 當有雙重條件和一個動作時,你可以用下面的語句: If Selection.Value = 10 Or Selection.Offset(0, 1).Value = 20 Then Selection.Offset(1, 0) = 100 End If 關于If..Then...Else...EndIf 當只有一個條件和兩個動作時,你可以用下面的語句: If Selection.Value > 10 Then Selection.Offset(1, 0) = 100 Else Selection.Offset(1, 0) = 0 End If 關于If..Then..ElseIf...EndIf 當有不止一個條件,且每個條件都跟隨不同的動作時,你可以用下面的語句: If Selection.Value = 1 Then Selection.Offset(1, 0) = 10 ElseIf Selection.Value = 2 Then Selection.Offset(1, 0) = 20 ElseIf Selection.Value = 3 Then Selection.Offset(1, 0) = 30 ElseIf Selection.Value = 4 Then Selection.Offset(1, 0) = 40 ElseIf Selection.Value = 5 Then Selection.Offset(1, 0) = 50 End If 關于Select Case 當你不得不測試很多條件,你可以用Select Case 語句來代替If Then..ElseIf 。語法如下: Sub test() Select Case Selection.Value Case Is >= 85 Selection.Offset(0, 1) = "A" Case Is >= 75 Selection.Offset(0, 1) = "B" Case Is >= 65 Selection.Offset(0, 1) = "C" Case Is >= 50 Selection.Offset(0, 1) = "D" Case Else Selection.Offset(0, 1) = "F" End Select End Sub 這段語句的意思就是:如果所選單元格的值大于85時,則其右邊那個單元格的值為“A”…… 所選單元格的值小于50時,其右邊那個單元格的值為“F” 這里有一些關于VBA函數 LCase, Now(), UCase 的例子: 注意: 很多EXCEL函數都可以以下面的形式用在VBA中: varAnswer = Application.WorksheetFunction.Sum(Range("A1:A32")) 或者 varAnswer = Application.Sum(Range("A1:A32")) LCase 當對輸入的字符做判斷時,我們無法知道用戶輸入的字符是大寫還是小寫,用LCase函數可以將其轉化為小寫: If LCase(Selection.value)= "toto" then... or Select Case LCase(Selection.Value) or Do While LCase(Selection.Value) <> "toto" NOW() NOW() 既是Excel 函數也是VBA 函數。 通過下面的語句,在打開工作簿時,單元格 "A1"就會顯示為當前時間: Range("A1").Formula = "=Now()" 下面的語句則在執行后賦予單元格“A1”當前時間,該時間不會改變除非你再次執行語句。并且你每次打開工作簿后,單元格“A1”的值不會改變。 Range("A1").Value = Now() UCase 當對輸入的字符做判斷時,我們無法知道用戶輸入的字符是大寫還是小寫,用LCase函數可以將其轉化為大寫: If UCase(Selection.value)= "TOTO" then... or Select Case UCase(Selection.Value) or Do While UCase(Selection.Value) <> "TOTO"
Excel整體界面趨于平面化,顯得清新簡潔。流暢的動畫和平滑的過渡,帶來不同以往的使用體驗。
|