1# 2#
Private Sub Label1_Click()
ActiveWorkbook.FollowHyperlink _
1. Address:=\
umr\End Sub
Private Sub UserForm_Initialize()
Dim hWndForm As Long, IStyle As Long
hWndForm = FindWindow(\IStyle = GetWindowLong(hWndForm, GWL_STYLE) IStyle = IStyle Or WS_MINIMIZEBOX ' IStyle = IStyle Or WS_MAXIMIZEBOX
SetWindowLong hWndForm, GWL_STYLE, IStyle End Sub
Private Sub UserForm_Terminate() ThisWorkbook.Close End Sub
Private Sub Workbook_Open() Call 播放 Call RegWrite End Sub
3#
4# 5# 6# 7# 8# 9# 10# 11#
1# 2# 3# 1# 2# 3# 4#
1# 2# 3# 4#
Sub RegWrite()
Dim WShell As Object
Set WShell = CreateObject(\WShell.RegWrite
第 29 页 共 37 页
\\
5# Set WShell = Nothing 6# End Sub
第十五讲 怎样才能不断的提高VBA水平
现在大家都能编写简单的程序了,其实VBA入门是相当困难的,刚开始看见像外星文一样的代码,现在不再陌生了,现在我们入门了,那怎样提高呢,这就是我们这一讲的内容,再次学习录制宏,修改宏,通过不断的调试录制的宏来了解这些对象的方法,属性,下面是录制一段宏代码,现在我们一起来调试。看看调试后的收获。
1# Sub Macro1()
2#
' Macro1 Macro
3# 4# 5# 6# 7# 8# 9# 10# 11# 12# 13# 14# 15# 16# 17# 18# ' 宏由 999宝藏网 录制,时间: 2011-1-15' Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _ Formula1:=\小老鼠\
With Selection.FormatConditions(1).Font .Bold = True .Italic = False .ColorIndex = 3 End With
With Selection.FormatConditions(1).Borders(xlLeft) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = 3 End With
With Selection.FormatConditions(1).Borders(xlRight) .LineStyle = xlContinuous
第 30 页 共 37 页
19# .Weight = xlThin 20# .ColorIndex = 3 21# End With
22# With Selection.FormatConditions(1).Borders(xlTop) 23# .LineStyle = xlContinuous 24# . Weight = xlThin 25# .ColorIndex = 3 26# End With
27# With Selection.FormatConditions(1).Borders(xlBottom) 28# .LineStyle = xlContinuous 29# .Weight = xlThin 30# .ColorIndex = 3 31# End With 32# End Sub
附录一 最常用的语句
1. 2. 3. 4. 5. 6. 7. 8. 9.
Option Explicit '强制对模块内所有变量进行声明
On Error Resume Next '忽略错误继续执行VBA代码,避免出现错误消息 On Error GoTo 100 '当错误发生时跳转到过程中的某个位置 On Error GoTo 0 '恢复正常的错误提示
Application.DisplayAlerts=False '在程序执行过程中使出现的警告框不显示 Application.ScreenUpdating=False '关闭屏幕刷新,加快程序运行 Application.ScreenUpdating=True '打开屏幕刷新 Option Compare Text '字符串不区分大小写
Workbooks(“book1.xls”).Activate '激活名为book1的工作簿
10. ThisWorkbook.Save '保存工作簿 11. ThisWorkbook.close '关闭当前工作簿
12. ActiveWorkbook.Sheets.Count '获取活动工作薄中工作表数 13. ActiveWorkbook.name '返回活动工作薄的名称 14. ThisWorkbook.Name ?返回当前工作簿名称 第 31 页 共 37 页
15. ThisWorkbook.FullName ?返回当前工作簿路径和名称 16. Workbooks.Add() '创建一个新的工作簿
17. ActiveWorkbook.Sheets(i).Name '获取工作表i的名称
18. ActiveWindow.DisplayGridlines=Not ActiveWindow.DisplayGridlines '切换工作表中的网格
线显示,这种方法也可以用在其它方面进行相互切换,即相当于开关按钮 19. ActiveSheet.UsedRange.Rows.Count ?当前工作表中已使用的行数 20. Rows.Count ?获取工作表的行数(注:考虑向前兼容性) 21. Sheets(Sheet1).Name= “Sum” '将Sheet1命名为Sum
22. ThisWorkbook.Sheets.Add Before:=Worksheets(1) '添加一个新工作表在第一工作表前 23. Worksheets(Array(“sheet1”,”sheet2”)).Select '同时选择工作表1和工作表2 24. Sheets(“sheet1”).Delete或 Sheets(1).Delete '删除工作表1
25. ActiveSheet.UsedRange.FormatConditions.Delete ?删除当前工作表中所有的条件格式 26. Cells.Hyperlinks.Delete ?取消当前工作表所有超链接 27. ActiveSheet.PageSetup.Orientation=xlLandscape
28. 或ActiveSheet.PageSetup.Orientation=2 '将页面设置更改为横向文件路径 29. 单元格/单元格区域
30. ActiveCell.CurrentRegion.Se或Range(ActiveCell.End(xlUp),ActiveCell.End(xlDown)).Select
选择当前活动单元格所包含的范围,上下左右无空行 31. Cells.Select ?选定当前工作表的所有单元格
32. Range(“A1”).ClearContents '清除活动工作表上单元格A1中的内容 33. Selection.ClearContents '清除选定区域内容
34. Range(“A1:D4”).Clear '彻底清除A1至D4单元格区域的内容,包括格式 35. Cells.Clear '清除工作表中所有单元格的内容
36. ActiveCell.Offset(1,0).Select '活动单元格下移一行,同理,可下移一列 37. Range(“A1”).Offset(ColumnOffset:=1)或Range(“A1”).Offset(,1) ?偏移一列 38. Range(“A1”).Offset(Rowoffset:=-1)或Range(“A1”).Offset(-1) ?向上偏移一行 39. Range(“A1”).Copy Range(“B1”) '复制单元格A1,粘贴到单元格B1中
40. Range(“A1:D8”).Copy Range(“F1”) '将单元格区域复制到单元格F1开始的区域中 41. Range(“A1:D8”).Cut Range(“F1”) '剪切单元格区域A1至D8,复制到单元格F1开始的区
域中
42. Range(“A1”).CurrentRegion.Copy Sheets(“Sheet2”).Range(“A1”) '复制包含A1的单元格区
域到工作表2中以A1起始的单元格区域中,注:CurrentRegion属性等价于定位命令,第 32 页 共 37 页
相关推荐: