公司实习第一天,excel搞不定啊,学点VBA留着用:
录制宏:
点击录制宏按钮以后,在这段期间你做的每一个操作都会被记录下来,直到你点击停止录制按钮才能够停下,停下来后在此期间每一个操作都会以宏代码的形式保存下来,下次同样机械的操作都可以使用宏所定义的快捷键进行操作。
编写宏定义:
使用快捷键ALT+F11进入宏编写IDE,插入一个新的宏,比如如下的一个宏可以在任何一个单元格的数字的后面根据数字的大小判断其属于哪个档次:
1 Sub GetRank() 2 Select Case Selection.Value 3 Case Is >= 90 4 Selection.Offset(0, 1) = "OutStanding" 5 Case Is >= 75 6 Selection.Offset(0, 1) = "Excellent" 7 Case Is >= 60 8 Selection.Offset(0, 1) = "Pass" 9 Case Else 10 Selection.Offset(0, 1) = "Fail" 11 End Select 12 End Sub
突然觉得好sb的操作,只能在每个单元格后面点,于是来点快捷的,对一列进行操作吧!
1 Sub GetAllRanks() 2 Dim IntRows As Integer 3 Dim i As Integer 4 IntRows = Selection.Rows.Count 5 For i = 1 To IntRows 6 Select Case Cells(i + 1, 1).Value 7 Case Is >= 90 8 Cells(i + 1, 2).Value = "OutStanding" 9 Case Is >= 75 10 Cells(i + 1, 2).Value = "Excellant" 11 Case Is >= 60 12 Cells(i + 1, 2).Value = "Pass" 13 Case Else 14 Cells(i + 1, 2).Value = "Fail" 15 End Select 16 Next i 17 End Sub
使用Range并且是"A1"形式:
1 Sub Get_Cell() 2 Dim RanCell As Range 3 Set RanCell = Range("e2") 4 With RanCell 5 .Value = "Hello to excel vba" 6 .Font.Italic = True 7 .Font.Bold = True 8 End With 9 Set RanCell = Nothing '释放对象 10 End Sub
使用Range的"R1C1"形式引用单元格:
1 Sub Get_Cells() 2 Worksheets("main").Cells.ClearContents 3 Dim i As Integer, j As Integer 4 For i = 1 To 8 5 For j = 1 To i 6 Cells(i, j).Value = i * j 7 Next 8 Next 9 10 End Sub
引用一块区域,则可以使用range来得到一块区域:
1 Sub CellsSelect() 2 Worksheets("Sheet2").Select 3 Dim MyRange1 As Range, MyRange2 As Range 4 Set MyRange1 = Range("A1:D5,G1:G8") 5 Set MyRange2 = Union(Range("A8:C12"), Range("E10:G13")) 6 MyRange1.Select 7 Selection.Interior.Color = 52435 8 MyRange2.Select 9 Selection.Interior.Color = 13254 10 End Sub
当然我们也可以选择整行或者整列,如Rows(1)选择第一行,Rows选择所有的行,Columns(1)或者Columns("A")选择第一列,Columns选择所有列;也可以使用Range关键词来选择Range("C:C"),选择C列,Range("C:F"),选择C到F列。
developer=>insert=>button, 拖一个出来点在worksheet上,程序会默认让你制定点击事件绑定的宏,默认会是***_Click(),你可以按这个命名定义,也可以先写好了再Assign也行。
选择当前选择单元格的上一个可以使用Previous,选择当前单元格的下一个单元格可以使用Next,当然首先你得选中自己,那么在excel中选中自己的代码是ActiveCell,这是当前你的光标所停留在的格子。
还可以使用offset选中相对于当前单元格的其他单元格,使用方法是Offset(RowOffset, ColumnOffset),如Range("A1").Offset(2,2)表示选择C3,ActiveCell.offset(,1)选择了当前单元格的下一列,ActiveCell.offset(1)选择了下一行,区域偏移可使用Range("C3:D5").offset(,1)
快下班了,今天先写到这里!