`
javababy1
  • 浏览: 1169127 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

转:经典Excel VBA代码

阅读更多
 
VBA基础在大家的关注声中即将告一段落了,有许多经典的VBA操作我们只是作了简要的介绍,想要熟练地使用VBA还需要大家慢慢地去消化和吸收,然后在实践中总结和提高。最后我们收集了常见的VBA代码以飨广大的读者,希望对大家有所启示。

Application(Excel程序)篇

Application.EnableEvents=True/False’启用/禁用所有事件

Application.DisplayAlerts=True/False’显示/关闭警告框提示框

Application.ScreenUpdating=True/False’显示/关闭屏幕刷新

Application.StatusBar="软件报专用"’在地址栏中显示文本,标题栏用Caption属性

Application.Cursor=xlIBeam‘设置光标形状为Ⅰ字形,xlWait为沙漏(等待)形,xlNormal为正常

Application.WindowState=xlMinimized‘窗口最小化,xlMaximized最大化,xlNormal为正常

Application.ActivateMicrosoftAppxlMicrosoftWord’开启Word应用程序

Application.TemplatesPath‘获取工作簿模板的位置

Application.CalculateFull’重新计算所有打开的工作簿中的数据

Application.RecentFiles.Maximum=2’将最近使用的文档列表数设为2

Application.RecentFiles(3).Open’打开最近打开的文档中的第3个文档

Application.AutoCorrect.AddReplacement"sweek","软件报"’自动将输入的"sweek"更正为"软件报"

Application.Dialogs(xlDialogPrint).Show‘显示打印文档的对话框

Application.OnTimeNow+TimeValue("00:00:45"),"process"’45分钟后执行指定过程

Application.OnTimeTimeValue("14:00:00"),"process"’下午2点执行指定过程

Application.OnTimeEarliestTime:=TimeValue("14:00:00"),_

Procedure:="process",Schedule:=False’取消指定时间的过程的执行

工作簿/工作表篇

ActiveWorkbook.Sheets.Count’获取活动工作薄中工作表数

ActiveWorkbook.LinkSources(xlExcelLinks)(1)‘返回当前工作簿中的第一条链接

ThisWorkbook.Worksheets(“sheet2”).Visible=xlSheetHidden‘隐藏工作表,与在Excel菜单中执行“格式—工作表—隐藏”操作一样

ThisWorkbook.Worksheets(“sheet2”).Visible=xlSheetVeryHidden‘隐藏工作表,不能通过在Excel菜单中执行“格式—工作表—取消隐藏”来重新显示工作表

ThisWorkbook.Worksheets(“sheet2”).Visible=xlSheetVisible‘显示被隐藏的工作表

ThisWorkbook.Sheets(1).ProtectContents‘检查工作表是否受到保护

ActiveSheet.Columns("B").Cut

ActiveSheet.Columns("F").Insert‘以上两句将B列数据移至F列,原C列后的数据左移

ActiveSheet.Range(“A:A”).EntireColumn.AutoFit‘自动调整当前工作表A列的列宽

ActiveSheet.Cells.SpecialCells(xlCellTypeConstants,xlTextValues)‘选中当前工作表中常量和文本单元格

ActiveSheet.Cells.SpecialCells(xlCellTypeConstants,xlErrors+xlTextValues)‘选中当前工作表中常量和文本及错误值单元格

ActiveSheet.UsedRange.Rows.Count‘当前工作表中已使用的行数

ThisWorkbook.Worksheets.AddThisWorkbook.Worksheets(3),,2‘在第3张工作表之前添加2个新的工作表

ActiveSheet.MoveAfter:=ActiveWorkbook._

Sheets(ActiveWorkbook.Sheets.Count)’将当前工作表移至工作表的最后

Worksheets(Array(“sheet1”,”sheet2”)).Select’同时选择工作表sheet1和sheet2

ActiveSheet.UsedRange.FormatConditions.Delete‘删除当前工作表中应用的条件格式

Cells.Hyperlinks.Delete‘取消当前工作表中所有单元格的超链接

ActiveSheet.PageSetup.RightFooter=ActiveWorkbook.FullName‘在页脚显示文件的路径

ActiveSheet.PrintPreviewEnablechanges:=False‘禁用显示在Excel的“打印预览”窗口中的“设置”和“页边距”按钮

单元格/单元格区域篇

ActiveSheet.UsedRange.Row‘获取已使用的单元格区域的第一行的行号

Range(“A65536”).End(xlUp).Row‘返回A列最后一行(即记录的总条数)

cell.Range(“A1”).HasFormula‘检查单元格或单元格区域中的第一个单元格是否含有公式或cell.HasFormula‘工作表中单元格是否含有公式

Target.EntireColumn.Select‘选择单元格所在的整个列,Target.EntireRow.Select为选择单元格所在的整行

ActiveCell.Row‘活动单元格所在的行号,ActiveCell.Column为活动单元格所在的列数

ActiveWindow.ScrollRow=2’将当前工作表窗口滚动到第2行

ActiveWindow.ScrollColumn=5’将当前工作表窗口滚动到第5列

Worksheets("sheet1").Range("A1:C5").CopyPicturexlScreen,xlBitmap’将指定的单元格区域的内容复制成屏幕快照

Selection.Hyperlinks.Delete‘删除所选区域的所有链接

ActiveSheet.Cells(1,1).Font.Bold=TRUE‘Bold属性用于设置字体是否为加粗,Size属性设置字体大小,ColorIndex属性设置字体颜色(其值为颜色索引号),Italic属性设置字型是否为倾斜,Name属性设置字体名称

ActiveSheet.Cells(1,1).Interior.ColorIndex=3‘将单元格的背景色设置为红色

IsEmpty(ActiveCell.Value)’判断活动单元格中是否有值

ActiveCell.Value=UCase(ActiveCell.Value)’将当前单元格中的字符转换成大写

ActiveCell.Value=StrConv(ActiveCell.Value,vbLowerCase)’将活动单元格中的字符串转换成小写

ActiveCell.CurrentRegion.Select’选择当前活动单元格所在的连续的非空区域,也可以用Range(ActiveCell,UsedRange.End(xlDown)).Select

ActiveCell.Offset(1,0).Select’活动单元格下移一行

Range(“B2”).Offset(ColumnOffset:=1)或Range(“B2”).Offset(,1)‘读取指定单元格右侧单元格中的数据

Range(“B2”).Offset(Rowoffset:=-1)或Range(“B2”).Offset(-1)‘读取指定单元格上一行单元格中的数据

Range(“A1”).CopyRange(“B1”)’复制单元格A1中的内容到B1中

Range(“A1:D8”).CopyRange(“H1”)’将指定单元格区域复制到从H1开始的区域中,用Cut方法可以实现剪切操作

ActiveWindow.RangeSelection.Value="软件报"’将指定字符串输入到所选单元格区域中

窗体(控件)篇

OptionExplicit’强制对模块内所有变量进行声明

Userform1.Show‘显示用户窗体

LoadUserform1‘加载一个用户窗体,但该窗体处于隐藏状态

Userform1.Hide‘隐藏用户窗体

UnloadUserform1或UnloadMe‘卸载用户窗体

Me.Height=Int(0.5*ActiveWindow.Height)‘窗体高度为当前活动窗口高度的一半,宽度用ActiveWindow.Width属性

UserForm1.ComboBox1.AddItemSheets("Sheet1").Cells(1,1)‘将指定单元格中的数据添加到复合框中

ListBox1.List=MyProduct()‘将数组MyProduct的值添加到列表框ListBox1中

ListBox1.RowSource=”Sheet1!isum”‘将工作表Sheet1中名为的isum区域的值添加到列表框中

ListBox1.Selected(0)‘选中列表框中的指定的条目

ListBox1.RemoveItemListBox1.ListIndex‘移除列表框中选中的条目

IfMsgBox(“要退出吗?”,vbYesNo)<>vbYesThenExitSub’返回值不为“是”,则退出

Config=vbYesNo+vbQuestion+vbDefaultButton2’使用常量的组合,赋值组Config变量,并设置第二个按钮为缺省按钮

MsgBox“Thisisthefirstline.”&vbNewLine&“Secondline.”’在消息框中强制换行,也可用vbCrLf代替vbNewLine。

MsgBox"平均值为:"&Format(Application.WorksheetFunction.Average(Selection),"#,##0.00"),vbInformation,"显示选区平均值"’应用工作表函数返回所选区域的平均值并按指定显示的格式

公式与函数

Application.WorksheetFunction.IsNumber(“A1”)’检查指定单元格中的数据是否为数字

Range(“A:A”).Find(Application.WorksheetFunction.Max(Range(“A:A”))).Activate

’激活单元格区域A列中最大值的单元格

Application.MacroOptionsMacro:=”GetSum”,Category:=4‘将自定义的GetSum函数指定给Excel中的“统计函数”类别

Application.MacroOptionsMacro:=”GetSum”,_

Description:=”先求和,然后再输出。”‘为自定义函数GetSum进行功能说明

Application.WorksheetFunction.CountA(Cell.EntireColumn)‘返回该单元格所在列非空单元格的数量,所在行使用EntireRow属性

Application.WorksheetFunction.CountA(Cells)‘返回当前工作表中非空单元格数量

图表篇

ActiveSheet.ChartObjects.Delete‘删除工作表中所有的ChartObject对象

ActiveWorkbook.Charts.Delete‘删除当前工作簿中所有的图表工作表ActiveSheet.ChartObjects.Count’获取当前工作表中图表的个数

Worksheets("Sheet1").ChartObjects(1).Chart._

ExportFilename:="C:\MyChart.gif",FilterName:="GIF"‘将指定工作表中的图表1导出到C盘上并命名为MyChart.gif

以上代码均经过我们的测试,大家可放心地使用并在此基础上加以归纳和提炼。如果你也有VBA使用的心得不妨写下来和大家一起来分享。
0
0
0
(请您对文章做出评价)
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics