.She3ets(“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\\System32\\Calc.exe\", ScreenTip:=\"按下我,就会开启Windows计算器\TextToDisplay:=\"Windows计算器\" '在活动单元格中设置开启Windows计算器链接 ActiveCell.Value = Shell(\"C:\\Windows\\System32\\Calc.exe\", 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:\est.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 = CreateObject(\"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.rng.Replace “ “,”0” '用0替换单元格区域中的空单元格 (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() 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 + 1, numcolumns + 1).Select End Sub 示例说明:本示例调整所选区域的大小,使之增加一行一列。 选取多个区域(Union方法) Sub testUnion() Dim rng1 As Range, rng2 As Range, myMultiAreaRange As Range Worksheets(\"sheet1\").Activate Set rng1 = Range(\"A1:B2\") Set rng2 = Range(\"C3:D4\") Set myMultiAreaRange = Union(rng1, rng2) myMultiAreaRange.Select End Sub 示例说明:可用 Union(range1, range2, ...) 返回多块区域,即该区域由两个或多个连续的单元格区域所组成。如上例创建由单元格区域A1:B2和C3:D4组合定义的对象,然后选定该定义区域。 激活已选区域中的单元格 Sub ActivateRange() MsgBox \"选取单元格区域B2:D6并将C4选中\" ActiveSheet.Range(\"B3:D6\").Select Range(\"C5\").Activate End Sub
选取指定条件的单元格(SpecialCells方法) Sub SelectSpecialCells() MsgBox \"选择当前工作表中所有公式单元格\" ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas).Select End Sub
选取矩形区域(CurrentRegion属性) '选取包含当前单元格的矩形区域
'该区域周边为空白行和空白列 Sub SelectCurrentRegion() MsgBox \"选取包含当前单元格的矩形区域\" ActiveCell.CurrentRegion.Select End Sub
选取当前工作表中已用单元格(UsedRange属性) '选取当前工作表中已使用的单元格区域 Sub SelectUsedRange() MsgBox \"选取当前工作表中已使用的单元格区域\" _& vbCrLf & \"并显示其地址\" ActiveSheet.UsedRange.Select MsgBox ActiveSheet.UsedRange.Address End Sub 7.动态数组 arr(-19 to 8) 这个数组的编号就是从-19开始的.那么它的最小编号就是-19,最大编号是8, 如果用语句返回就是: Sub t1() Dim arr(-19 To 8) MsgBox UBound(arr) '返回最大编号,结果为8 MsgBox LBound(arr) '返回最小编号,结果为-19 End Sub
如果是有行列组成的二维数组呢?二维数组返回行的下标和列的下标见下例
Sub t2() Dim arr(-19 To 8, 2 To 5) MsgBox UBound(arr) '返回第1维(行的)最大编号,结果为8 MsgBox LBound(arr) '返回第1维(行的)小编号,结果为-19 MsgBox UBound(arr, 2) '返回第2维(列的)最大编号,结果为5 MsgBox LBound(arr, 2) '返回第2维(列的)最小编号,结果为2 End Sub Sub t3() Dim arr arr = Sheets(1).UsedRange 'Usedrange的行数和列数是未知的 MsgBox UBound(arr, 1) '可以计算这个区域有多少行 MsgBox UBound(arr, 2) '可以计算出这个区域有多少列 End Sub
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- 69lv.com 版权所有 湘ICP备2023021910号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务