常用语句
(1).工作簿
1.On Error Resume Next                            '忽略错误继续执行VBA代码,避免出现错误消息
2.On Error GoTo ErrorHandler                      '当错误发生时跳转到过程中的某个位置
3.Application.DisplayAlerts=False                '在程序执行过程中使出现的警告框不显示
4.Application.ScreenUpdating=False                '关闭屏幕刷新
Application.ScreenUpdating=True                '打开屏幕刷新
5.ActiveWorkbook.name                            '返回活动工作薄的名称
6.ActiveWorkbook.WindowState=xlMaximized          '将当前工作簿最大化
7.Sheets(Sheet1).Name= “Sum”                      '将Sheet1命名为Sum
8.Worksheets(Array(“sheet1”,”sheet2”)).Select    '同时选择工作表1和工作表2
9.ActiveSheet.UsedRange.FormatConditions.Delete  '删除当前工作表中所有的条件格式
10.ActiveSheet.PageSetup.Orientation=xlLandscape或ActiveSheet.PageSetup.Orientation=2  '将页面设置更改为横向
11.Cells.Select                    '选定当前工作表的所有单元格
12.Range(“A1”).ClearContents      '清除活动工作表上单元格A1中的内容
Selection.ClearContents        '清除选定区域内容
Range(“A1:D4”).Clear            '彻底清除A1至D4单元格区域的内容,包括格式
13.ActiveCell.Offset(1,0).Select                                        '活动单元格下移一行,同理,可下移一列
Range(“A1”).Offset(ColumnOffset:=1) 或 Range(“A1”).Offset(,1)        '偏移一列
Range(“A1”).Offset(Rowoffset:=-1) 或 Range(“A1”).Offset(-1)          '向上偏移一行
14.ActiveWindow.RangeSelection.Value=XX                                  '将值XX输入到所选单元格区域中
15.ActiveWindow.RangeSelection.Count                                    '活动窗口中选择的单元格数
16.Range(“A1”).Interior.ColorIndex 或 Cells(1,1).Interior.ColorIndex    '获取单元格A1背景
17.Names.Add Name:=”MyArray”,RefersTo:=ArrayNum                          '将数组ArrayNum命名为MyArray
18.Names.Add Name:=”ProduceNum”:,RefersTo:=”=$B$1”,Visible:=False        '将名称隐藏
19.Cells(8,8).FormulaArray=”=SUM(R2C[-1]:R[-1]C[-1]*R2C:R[-1]C)”        '在单元格中输入数组公式。注意必须使用R1C1样式的表达式
(2).图表
1.ActiveSheet.ChartObjects.Count                    '获取当前工作表中图表的个数
2.ActiveSheet.ChartObjects(“Chart1”).Select          '选中当前工作表中图表Chart1
3.Sheets(“Chart2”).ChartArea.Interior.ColorIndex=2  '更改图表工作表中图表区的颜
4.Charts.Add                                        '添加新的图表工作表
5.ActiveChart.PlotArea.Interior.ColorIndex=xlNone    '将绘图区颜变为白
(3).窗体
1.MsgBox “Hello!”                                                '消息框中显示消息Hello
2
.Ans=MsgBox(“Continue?”,vbYesNo)                                '在消息框中点击“是”按钮,则Ans值为vbYes;点击“否”按钮,则Ans值为vbNo。
If MsgBox(“Continue?”,vbYesNo)<>vbYes Then Exit Sub            '返回值不为“是”,则退出
3.MsgBox “This is the first line.” & vbNewLine & “Second line.”  '在消息框中强制换行,可用vbCrLf代替vbNewLine。
4.Userform1.Show                    '显示用户窗体
Userform1.Hide                    '隐藏用户窗体
Unload Userform1 或 Unload Me      '卸载用户窗体
5.Application.EnableEvents=False    '禁用所有事件
Application.EnableEvents=True      '启用所有事件
6.Application.OnTime Now + TimeValue("00:00:15"), "myProcedure"            '等待15秒后运行myProcedure过程
7.Application.OnTime DateSerial(2006,6,6)+TimeValue(“16:16:16”),”BaoPo”    '在2006年6月6日的16:16:16开始运行BaoPo过程
8.Application.Calculation = xlCalculationManual                            '设置工作簿手动计算
Application.Calculation = xlCalculationAutomatic                        '工作簿自动计算
9.Application.AutoCorrect.AddReplacement "葛洲坝", "三峡"                  '自动将在工作表中进行输入的"葛洲坝"更正为"三峡"
10.Date = #6/6/2006#
Time = #6:16:16 AM#                                  '将系统时间更改为2006年6月6日上午6时16分16秒
11.ActiveCell.Hyperlinks.Add Anchor:=ActiveCell, _Address:=
"C:\Windows\", ScreenTip:="按下我,就会开启Windows计算器",TextToDisplay:="Windows计算器" '在活动单元格中设置开启Windows计算器链接
ActiveCell.Value = Shell("C:\Windows\", vbNormalFocus) '开启Windows计算器
12.工作表中的窗体按钮禁用后,按钮形状不变,字体不变,从外表上无法看出其已禁用,如何设置属性使其像控件按纽那样明显的禁用?
With ActiveSheet.Buttons(1)
.Enabled = False
ActiveSheet.Shapes(.Caption).DrawingObject.Font.ColorIndex = 15
End With
復原的方法
With ActiveSheet.Buttons(1)
.Enabled = True
ActiveSheet.Shapes(.Caption).DrawingObject.Font.ColorIndex = xlAutomatic
End With
(4).对象
1.Set ExcelSheet = CreateObject("Excel.Sheet")          '创建一个Excel工作表对象
ExcelSheet.Application.Visible = True                '设置Application对象使Excel可见
ExcelSheet.Application.Cells(1, 1).Value = "Data"    '在表格的第一个单元中输入文本
ExcelSheet.SaveAs "C:\TEST.XLS"                      '将该表格保存到C:\test.xls 目录
ExcelSheet.Application.Quit                          '关闭 Excel
Set ExcelSheet = Nothing                              '释放该对象变量
2.声明并创建一个Excel对象引用
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.WorkSheet
Set xlApp = C
reateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets(1)
3.Application.OnKey “^I”,”macro”                        '设置Ctrl+I键为macro过程的快捷键
Application.Transpose(Array(“Sun”,”Mon”,”Tur”,”Wed”,”Thu”,”Fri”,”Sat”))          '返回一个垂直的数组
Application.WindowState                    '返回窗口当前的状态
Application.WindowState = xlMinimized      '窗口最小化
Application.WindowState = xlMaximized      '窗口最大化
Application.WindowState = xlNormal        '窗口正常状态
Application.Interactive=False              '忽略键盘或鼠标的输入
4.Range(“A65536”).End(xlUp).Row+1            '返回A列最后一行的下一行
cell.Range(“A1”).HasFormula                '检查单元格或单元格区域中的第一个单元格是否含有公式
cell.HasFormula                            '工作表中单元格是否含有公式
Range(“D5:D10”).Cells(1,1)                '返回单元格区域D5:D10中左上角单元格
(5).工作簿
1.ThisWorkbook.BuiltinDocumentProperties(“Last Save Time”)或
Application.Caller.Parent.Parent.BuiltinDocumentProperties(“Last Save Time”)    '返回上次保存工作簿的 日期和时间
2.ThisWorkbook.BuiltinDocumentProperties("Last Print Date")或
Application.Caller.Parent.Parent.BuiltinDocumentProperties(“Last Print Date”)    '返回上次打印或预览工作簿的日期和时间
3.ThisWorkbook.Path  ActiveWorkbook.Path                                          '返回当前工作簿的路径(注:若工作簿未保存,则为空)
4.Application.Visible = False                                                      '隐藏工作簿
Application.Visible = True                                                      '显示工作簿
(6).工作表
1.ActiveSheet.Columns("B").Insert    '在A列右侧插入列,即插入B列
ActiveSheet.Columns("E").Cut
ActiveSheet.Columns("B").Insert    '以上两句将E列数据移至B列,原B列及以后的数据相应后移
ActiveSheet.Columns("B").Cut
ActiveSheet.Columns("E").Insert    '以上两句将B列数据移至D列,原C列和D列数据相应左移一列
2.ThisWorkbook.Worksheets(“sheet1”).Visible=xlSheetHidden            '正常隐藏工作表,同在Excel菜单中选择“格式——工作表——隐藏”操作一样
ThisWorkbook.Worksheets(“sheet1”).Visible=xlSheetVeryHidden        '隐藏工作表,不能通过在Excel菜单中选择“格式——工作表——取消隐藏”来重新显示工作表
ThisWorkbook.Worksheets(“sheet1”).Visible=xlSheetVisible            '显示被隐藏的工作表
3.ThisWorkbook.Worksheets("Sheet1").Rows(1).Hidden = True            '将工作表Sheet1中的行1隐藏
ActiveCell.EntireRow.Hidden = True 
'将当前工作表中活动单元格所在的行隐藏
(7).公式与函数
1.WorksheetFunction.CountA(Cell.EntireColumn)                        '返回该单元格所在列非空单元格的数量
WorksheetFunction.CountA(Cell.EntireRow)                            '返回该单元格所在行非空单元格的数量
WorksheetFunction.CountA(Cells)                                    '返回工作表中非空单元格数量
2.ActiveSheet.Range(“A20:D20”).Formula=”=Sum(R[-19]C:R[-1]C”          '对A列至D列前19个数值求和
3.Private Sub Worksheet_SelectionChange(ByVal Target As Range        '选定A1时要输入密码
If Target.Address = "$A$1" Then
A = InputBox("请输入密码", "officefans")
If A = 1 Then [A1].Select Else [A2].Select
End If
End Sub
方法
1.计算两日期之间相差多少天
DateDiff("d",开始时间,结束时间)'("d"是表示要计算相差天数,如果要计算年则用"y"月用"m")
Weekday(Date) '获取今天的星期,以数值表示,1-7分别对应星期日至星期六
例:
(1).语句示例:DateDiff("d", Range("A1").Value, Range("B1").Value)
(2).函数示例:
Dim TheDate As Date
Dim Msg
TheDate = InpurBox("请输入一个日期")
Msg = "Days from today: " & DateDiff("d", Now, TheDate)
MsgBox Msg
(3).单元格公式:
=DATEDIF(DATE(MID(F42,1,4),MID(F42,5,2),MID(F42,7,2)),DATE(MID(G42,1,4),MID(G42,5,2),MID(G42,7,2)),"d")
*注*先把字符串格式的日期解析成日期类型,用mid方法 : mid(text,start_num,num_chars)
可以从字符串中取出子字符串,这里start_num是开始位置(最小值为1,不是0),num_chars是取出多少个字符串
例如F42单元格内容为20111203,那么解析成日期可以用=DATE(MID(F42,1,4),MID(F42,5,2),MID(F42,7,2))
MID(F42,1,4)就是将F42单元格从第一位开始截取4位这样就得到了2011作为年,MID(F42,5,2),MID(F42,7,2)同理得到月份和日期
2.得到包含指定内容的单元格所在行,列
Dim ThisCloumn, ThisRow
For MaxC = 1 To Cells(1, 256).End(xlUp).column Step 1  '第二列内容为"更新日期"的单元格所在列
If InStr(Cells(2, MaxC), "更新日期:") Then
ThisCloumn = MaxC
Exit For
End If
Next MaxC
For MaxR = 1 To Cells(65536, 1).End(xlUp).row Step 1    '第10行内容为"预定"的单元格所在行
If InStr(Cells(MaxR, 10), "预定") Then
ThisRow = MaxR
Exit For
End If
Next MaxR
得到所要的行和列的序号后用Exit For跳出For循环
3.单元格赋值示例
示例一
Sub test1()
Worksheets("Sheet1").Range("A5").Value = 22
MsgBox "工作表Sheet1内单元格A5中的值为" _& Worksheets("Sheet1").Range("A5").Value
End Sub
示例二
Sub test2()
Worksheets("Sheet1").Range("A1").Value = _Worksheets("Sheet1").Range("A5").Value
MsgBox "现在A1单元格中的值也为" & _Worksheets("Sheet1").Range("A5").Value
End Sub
示例三
Sub test3()
MsgBox "用公式填充单元格,本例为随机数公式"
Range("A1:H8").Formula = "=Rand()"
End Sub
示例四
Sub test4()
Worksheets(1).Cells(1, 1).Value = 24
MsgBox "现在单元格A1的值为24"
End Sub
示例五
Sub test5()
MsgBox "给单元格设置公式,求B2至B5单元格区域之和"
ActiveSheet.Cells(2, 1).Formula = "=Sum(B1:B5)"
End Sub
示例六
Sub test6()
MsgBox "设置单元格C5中的公式."
Worksheets(1).Range("C5:C10").Cells(1, 1).Formula = "=Rand()"
End Sub
4.单元格引用示例
Sub Random()
Dim myRange As Range
'设置对单元格区域的引用
Set myRange = Worksheets("Sheet1").Range("A1:D5")
'对Range对象进行操作
myRange.Formula = "=RAND()"
myRange.Font.Bold = True
End Sub
示例说明:可以设置Range对象变量来引用单元格区域,然后对该变量所代表的单元格区域进行操作。
5.清除单元格示例
示例一
清除单元格中的内容(ClearContents方法)
Sub testClearContents()
MsgBox "清除指定单元格区域中的内容"
Worksheets(1).Range("A1:H8").ClearContents
End Sub
示例二
清除单元格中的格式(ClearFormats方法)
Sub testClearFormats()vba 字符串转数组
MsgBox "清除指定单元格区域中的格式"
Worksheets(1).Range("A1:H8").ClearFormats
End Sub
示例三
清除单元格中的批注(ClearComments方法)
Sub testClearComments()
MsgBox "清除指定单元格区域中的批注"
Worksheets(1).Range("A1:H8").ClearComments
End Sub
示例四
清除单元格中的全部,包括内容、格式和批注(Clear方法)
Sub testClear()
MsgBox "彻底清除指定单元格区域"
Worksheets(1).Range("A1:H8").Clear
End Sub
6.其他示例
Range和Cells的用法
Sub test()
'设置单元格区域A1:J10的边框线条样式
With Worksheets(1)
.Range(.Cells(1, 1), _
.Cells(10, 10)).Borders.LineStyle = xlThick
End With
End Sub
示例说明:可用 Range(cell1, cell2) 返回一个 Range 对象,其中cell1和cell2为指定起始和终止位置的Range对象。
选取单元格区域(Select方法)
Sub testSelect()
'选取单元格区域A1:D5
Worksheets("Sheet1").Range("A1:D5").Select
End Sub
基于所选区域偏离至另一区域(Offset属性)
Sub testOffset()
Worksheets("Sheet1").Activate
Selection.Offset(3, 1).Select
End Sub
示例说明:可用Offset(row, column)(其中row和column为行偏移量和列偏移量)返回相对于另一区域在指定偏移量处的区域。如上例选定位于当前选定区域左上角单元格的向下三行且向右一列处单元格区域。
选取距当前单元格指定行数和列数的单元格
Sub ActiveCellOffice()
MsgBox "显示距当前单元格第3列、第2行的单元格中的值"
MsgBox ActiveCell.Offset(3, 2).Value
End Sub
调整区域的大小(Resize属性)
Sub ResizeRange()
Dim numRows As Integer, numcolumns As Integer
Worksheets("Sheet1").Activate
numRows = Selection.Rows.Count
numcolumns = Selection.Columns.Count
Selection.Resize(numRows +

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。