当前位置: 首页 > 常见问题 > Excel表格

vba经典代码应用大全,vba常用函数大全

  • Excel表格
  • 2023-07-28

vba经典代码应用大全?1.首先,使用扩展XLSM将Excel文档(默认情况下是新的扩展XLSX)保存为一个支持宏的工作簿。2.按ALt+F11快速切换到VBA。3.击VBA窗口后进入界面,如图所示。4.双击此工作簿后,将弹出一个代码窗口。5.在代码窗口中,那么,vba经典代码应用大全?一起来了解一下吧。

vba宏代码大全

Sub fuzi()

Range("a1:a22").Copy

Range("b5").Select

ActiveSheet.Paste '在选定区域进行粘贴(含格式)'

Application.CutCopyMode = False

‘不带格式粘贴

Range("a1:a22").Copy

Range("c5").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Application.CutCopyMode = False

End Sub

Sub 运行多少秒()

t = Timer

lrow1 = Range("a1").CurrentRegion.Rows.Count

lrow2 = Range("e1").CurrentRegion.Rows.Count

Range("a2:a" & lrow1).Copy

Range("e2:e" & lrow2).Select

ActiveSheet.Paste

Selection.NumberFormatLocal = "yyyy/m/d"

''--------------------------------------------

lrow3 = Range("b1").CurrentRegion.Rows.Count

lrow4 = Range("f1").CurrentRegion.Rows.Count

Range("b2:b" & lrow3).Copy

Range("f2:f" & lrow4).Select

ActiveSheet.Paste

Selection.NumberFormatLocal = "0.00%"

''---------------------------------------------

lrow5 = Range("c1").CurrentRegion.Rows.Count

lrow6 = Range("g1").CurrentRegion.Rows.Count

Range("c2:c" & lrow5).Copy

Range("g2:g" & lrow6).Select

ActiveSheet.Paste

Selection.NumberFormatLocal = "G/通用格式"

''---------------------------------------------

lrow7 = Range("d1").CurrentRegion.Rows.Count

lrow8 = Range("h1").CurrentRegion.Rows.Count

Range("d2:d" & lrow7).Copy

Range("h2:f" & lrow8).Select

ActiveSheet.Paste

Selection.NumberFormatLocal = "@"

MsgBox Timer - t & "秒完成"

End Sub

Sub 向右插入一列()

Worksheets("向右插入一列").Select

Columns("d:d").Insert shift:=xlToRight

End Sub

Sub 取消隐藏()

Worksheets("取消隐藏").Columns("b:h").EntireColumn.AutoFit '仅仅取消b - h列'

'Worksheets().UsedRange. EntireColumn.AutoFit'--整个表都取消

End Sub

Sub 隐藏()

Worksheets("隐藏").Select

Columns("A:H").ColumnWidth = 0

End Sub

Sub 判断统计() '等同于sumif功能'

Worksheets("判断统计").Select

Application.ScreenUpdating = False '关闭屏幕更新,看不到宏的执行过程,但提高宏运行速度

Application.EnableEvents = False '关闭事件,防止触发事情,提高运行速度

a = Range("a1").CurrentRegion.Rows.Count

For i = 2 To a

If Range("p" & i) > 90 Then

Range("u" & i) = "M3+"

ElseIf Range("p" & i) >= 61 Then

Range("u" & i) = "M3"

ElseIf Range("p" & i) >= 31 Then

Range("u" & i) = "M2"

Else: Range("u" & i) = "M1"

End If

Next

Range("Y21").Select

ActiveCell.FormulaR1C1 = "=SUMIFS(C[-13],C[-5],""M1"")"

Range("Y22").Select

ActiveCell.FormulaR1C1 = "=SUMIFS(C[-13],C[-5],""M2"")"

Range("Y23").Select

ActiveCell.FormulaR1C1 = "=SUMIFS(C[-13],C[-5],""M3"")"

Range("Y24").Select

ActiveCell.FormulaR1C1 = "=SUMIFS(C[-13],C[-5],""M3+"")"

Range("Z21").Select

ActiveCell.FormulaR1C1 = "=COUNTIF(C[-6],""M1"")"

Range("Z22").Select

ActiveCell.FormulaR1C1 = "=COUNTIF(C[-6],""M2"")"

Range("Z23").Select

ActiveCell.FormulaR1C1 = "=COUNTIF(C[-6],""M3"")"

Range("Z24").Select

ActiveCell.FormulaR1C1 = "=COUNTIF(C[-6],""M3+"")"

Application.EnableEvents = True

Application.ScreenUpdating = True '结束屏幕更新

End Sub

Sub 匹配()

Worksheets("匹配").Select

Columns("K").Clear

Range("K2").Select

ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],C[-10]:C[-9],2,0)"

Selection.AutoFill Destination:=Range("K2:K17"), Type:=xlFillDefault

Range("K2:K17").Select

Selection.Copy

Range("K2").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Range("M8").Select

Application.CutCopyMode = False

End Sub

Sub 匹配1()

Worksheets("匹配1").Select

Columns("B").Clear

Range("B2").Select

ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],被匹配!C[-1]:C,2,0)"

Selection.AutoFill Destination:=Range("B2:B17"), Type:=xlFillDefault

Range("B2:B17").Select

Selection.Copy

Range("B2").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Range("M8").Select

Application.CutCopyMode = False

End Sub

Sub 排序()

Dim rng As Range

Set rng = Range("A1:A22")

rng.Sort key1:="CONTRACTNO", order1:=xlDescending, Header:=xlYes

End Sub

Sub 筛选()

'筛选

irow = Range("a1").CurrentRegion.Rows.Count - 最大行

ActiveSheet.Range("1:A" & irow).AutoFilter field:=1, Criteria1:= _

"a15hhhhhhhhhh"

'复制A16

Range("A16").Select

Selection.Copy

'在G16的位置粘贴

Range("G16").Select

'带格式粘贴

ActiveSheet.Paste

'退出粘贴

Application.CutCopyMode = False

'退出筛选

ActiveSheet.Range("1:A" & irow).AutoFilter field:=1

End Sub

Sub 判断分组()

a = Range("a1").CurrentRegion.Rows.Count

For i = 2 To 43

If Range("A" & i) = "M1-1" Then

Range("D" & i) = Range("b" & i) / Range("c" & i) / 0.815

Else: Range("D" & i) = Range("b" & i) / Range("c" & i) / 0.095

End If

Next

End Sub

Sub 单元格相对引用值()

Range("A2").FormulaR1C1 = "=RC[1]&RC[2]"

End Sub

Sub 向下填充数据()

Range("b2").Select

ActiveCell.FormulaR1C1 = "=RC[-1]&""200"""

Range("B2").Select

Selection.AutoFill Destination:=Range("B2:B22"), Type:=xlFillDefault

Range("B2:B22").Select

End Sub

Sub 表格显示隐藏()

Worksheets("表格显示隐藏").Visible = True '打开隐藏表格'

End Sub

Sub 格式调整()

lrow1 = Range("a1").CurrentRegion.Rows.Count

lrow2 = Range("e1").CurrentRegion.Rows.Count

Range("a2:a" & lrow1).Copy

Range("e2:e" & lrow2).Select

ActiveSheet.Paste

Selection.NumberFormatLocal = "yyyy/m/d"

''--------------------------------------------

lrow3 = Range("b1").CurrentRegion.Rows.Count

lrow4 = Range("f1").CurrentRegion.Rows.Count

Range("b2:b" & lrow3).Copy

Range("f2:f" & lrow4).Select

ActiveSheet.Paste

Selection.NumberFormatLocal = "0.00%"

''---------------------------------------------

lrow5 = Range("c1").CurrentRegion.Rows.Count

lrow6 = Range("g1").CurrentRegion.Rows.Count

Range("c2:c" & lrow5).Copy

Range("g2:g" & lrow6).Select

ActiveSheet.Paste

Selection.NumberFormatLocal = "G/通用格式"

''---------------------------------------------

lrow7 = Range("d1").CurrentRegion.Rows.Count

lrow8 = Range("h1").CurrentRegion.Rows.Count

Range("d2:d" & lrow7).Copy

Range("h2:h" & lrow8).Select

ActiveSheet.Paste

Selection.NumberFormatLocal = "@"

End Sub

Sub 透视表()

Worksheets("透视表").Select

Columns("J:L").Clear

Columns("A:H").Select

ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _

"透视表!R1C1:R20C8", Version:=xlPivotTableVersion15).CreatePivotTable _

TableDestination:="透视表!R4C10", TableName:="数据透视表1", DefaultVersion:= _

xlPivotTableVersion15

Sheets("透视表").Select

Cells(4, 10).Select

With ActiveSheet.PivotTables("数据透视表1").PivotFields("组别")

.Orientation = xlRowField

.Position = 1

End With

ActiveSheet.PivotTables("数据透视表1").AddDataField ActiveSheet.PivotTables("数据透视表1" _

).PivotFields("可算回款金额"), "求和项:可算回款金额", xlSum

ActiveSheet.PivotTables("数据透视表1").AddDataField ActiveSheet.PivotTables("数据透视表1" _

).PivotFields("是否有回退"), "求和项:是否有回退", xlSum

With ActiveSheet.PivotTables("数据透视表1").PivotFields("求和项:是否有回退")

.Caption = "计数项:是否有回退"

.Function = xlCount

End With

ActiveWorkbook.ShowPivotTableFieldList = False

End Sub

vba编程必背50个程序

不是高手,但是写一般的VBA代码没问题。这个代码是响应一个选择事件。

之前有设置保护工作表吧。现在好像注释了。

现在主要是响应一个区域孝稿乱内,如果选中其中的一个单元敬陪格,则这个单元格所在的行和列填充色改变。

如果需要写代码,或者交流学习,可以关注,也可以直巧档接向我提问,或者私信。

vba代码编程800例

(1) Option Explicit

解释:强制对模块内所有变量进行声明

(2) Option Base 1

解释:指定数组的第一个下标为1

(3) On Error Resume Next

解释:忽略错误继续执行VBA代码,避免出现错误消息

第 1 页

编程简单 AGV/AMR 3步建

(4) On Error GoTo 100

解释:当错误发生时跳转到过程中的某个位置

(5) On Error GoTo 0

解释:恢复正常的错误提示

(6) Application.DisplayAlerts=False

解释:在程序执行过程中使出现的警告框不显示

(7) Application.DisplayAlerts

第 2 页

=True

解释:在程序执行过程中恢复显示警告框

(8) Application.ScreenUpdating=False

解释:关闭屏幕刷新

(9) Application.ScreenUpdating = True

解释段带历:打开屏幕刷新

第 3 页

(10)Workbooks.Add()

解释:创建一个新的工作簿

(11)Workbooks(“book1.xls”).Activate

解释:激活名为book1的工作簿

(12) ThisWorkbook.Save

解释握搜:保存工作簿

(13) ThisWorkbook.close

解释:关闭当前工作簿

第 4 页

(14)ActiveWorkbook.Sheets.Count

解释:获取活动工作薄中工作表数

(15)ActiveWorkbook.name

解释:返回活动工作薄的名称

(16) ThisWorkbook.Name

解释:返回当前工作簿名称

(17) ThisWorkbook.FullName

第 5 页

解行猜释:返回当前工作簿路径和名

(18) ActiveSheet.UsedRange.Rows.Count

解释:当前工作表中已使用的行数

(19) Rows.Count

第 6 页

解释:获取工作表的行数

(20)Sheets(Sheet1).Name= “Sum”

解释:将Sheet1命名为Sum

(21)ThisWorkbook.Sheets.Add Before:=

vba物品源代码

1:打开所有隐藏工作表

2:循环宏

3:录制宏时调用“停止录制”栏

4:高级筛选5列不重复数据至指定表

5:双击单元执行宏(工作表代码)

6:双击指定区域单元执行宏(工作表代码)

7:进入单元执行宏(工作表代码)

8:进入指定区域单元执行宏(工作表代码)

9:在多个宏中依次循知肢键环执行一个(控件按钮代码)

10:在两个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码)

11:在三个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码)

12:根据A1单元文本隐藏/显示按钮(控件按钮代码)

13:当前单元返回按钮名称(控件按钮代码)

14:当前单元内容返回到按钮名称(控件按钮代码)

15:奇偶页分别打印

16:自动打印多工作表第一页

17:查找A列文本循环插入分页符

18:将A列最后数据行以上的所有B列图片大小调整为所在单元大小

19:返回光标所在行数20:在A1返回当前选中单元格数量

21:返回当前工作簿中工作表数量

22:返回光标选择区域的行数和列数

23:工作表中包含数据的最大行数

24:返回A列数据的最大行数

25:将所选区域文本插入新建文本框

26:批量插入地址批注

27:批量插入统一批注

28:以A1单元内容批量插入批注

29:不连续区域插入当前文件名和表名及地址

30:不连续区域录入当前单元地址

31:连续区域录入当前单元地址

32:返回当前单元地址

33:不连续区域录入当前日期

34:不连续区域录入当前数字日期

35:不连续区域录入当前日期和时间

36:不连续区域录入对勾

37:不连续区域录入当前文件名

38:不连续区域添加文本

39:不连续区域插入文本

40:从指定位置向下同时录入多单元指定内容

41:按aa工作表A列的内容排列工作表标签顺序

42:以A1单元文本作表名插入工作表

43:删除所有未选定工作表

44:工作表标签排序

45:定义指定工作表标签颜色

46:在目录表建立本工作簿中各表链接目录

47:建立工作表文本目录

48:查另一文件的所有表名

49:当前单元录入计算机名

50:当前单元录入计算机用户名

51:解除所有工作表保护

52:为指定工作表加指定密码保护表

53:在有密码的工作表执行代码

54:执行前需要验证密码的宏(控件按钮代码)

55:执行前需要验证密码的宏()

56:拷贝A1公式和格式到A2

57:复制单元数值

58:插入数值条件搭巧格式

59:插入透明批注

60:添加文本

61:光标定位到指定工作表A列最后数据行下一单元

62:定位选定单元格式相同的所有单元格

63:按当前单元文本定位

64:按固定文本定位

65:删除包含固定文本单元的行或列

66:定位数据及区域以上的空值

67:右侧单元自动加5(工作表代码)

68:当前单元加2

69:A列等于A列减B列

70:用于光标选定多区域跳转指定单元(工作表代码)

71:将A1单元录入的数据累加到B1单元(工作表代码)

72:在指定颜色区域选择单元时添加/取消"√"(工作表代码)

73:在指定区域选择单元时添加/取消"√"(工作表代码)

74:双击指定单元,循环录入文本(工作表代码)

75:双击指定单元,循环录入文本(工作表代码)

76:单元区域引用(工作表代码)

77:在指定区域选择单元时数值加1(工作表代码)

78:混合文本的编号

79:指定区域单元双击数据累加(工作表代码)

80:选择单元区域触发事件(工作表代码)

81:当修改指定单元内容时自动执行宏(工作表代码)

82:被饥洞指定单元内容限制执行宏

83:双击单元隐藏该行(工作表代码)

84:高亮显示行(工作表代码)

85:高亮显示行和列(工作表代码)

86:为指定工作表设置滚动范围(工作簿代码)

87:在指定单元记录打印和预览次数(工作簿代码)

88:自动数字金额转大写(工作表代码)

89:将所有工作表的A1单元作为单击按钮(工作簿代码)

90:闹钟——到指定时间执行宏(工作簿代码)

91:改变Excel界面标题的宏(工作簿代码)

92:在指定工作表的指定单元返回光标当前多选区地址(工作簿代码)

93:B列录入数据时在A列返回记录时间(工作表代码)

94:当指定区域修改时在其右侧的2个单元返回当前日期和时间(工作表代码)

95:指定单元显示光标位置内容(工作表代码)

96:每编辑一个单元保存文件

97:指定允许编辑区域

98:解除允许编辑区域限制

99:删除指定行

100:删除A列为指定内容的行

1:打开所有隐藏工作表

Sub打开所有隐藏工作表()

DimiAsInteger

Fori=1ToSheets.Count

Sheets(i).Visible=True

Nexti

EndSub

2:循环宏

Sub循环()

AAA=Range("C2")

DimiAsLong

DimtimesAsLong

times=AAA

'times代表循环次数,执行前把times赋值即可(不可小于1,不可大于2147483647)

Fori=1Totimes

Call过滤一行

IfRange("完成标志")="完成"Then

ExitFor

'假如名为'完成标志'的命名单元的值等于'完成',则退出循环,假如一开始就等于'完成',则只执行一次循环就退出

'IfSheets("传送参数").Range("A"&i).Text="完成"Then

ExitFor

'假如某列出现"完成"内容则退出循环

Nexti

EndSub

3:录制宏时调用“停止录制”栏

Sub录制宏时调用停止录制栏()

Application.CommandBars("StopRecording").Visible=True

EndSub

4:高级筛选5列不重复数据至指定表

Sub高级筛选5列不重复数据至Sheet2()

Sheets("Sheet2").Range("A1:E65536")=""'清除Sheet2的A:D列

Range("A1:E65536").AdvancedFilterAction:=xlFilterCopy,CopyToRange:=Sheet2.Range(_

"A1"),Unique:=True

Sheet2.Columns("A:E").SortKey1:=Sheet2.Range("A2"),Order1:=xlAscending,Header:=xlGuess,_

OrderCustom:=1,MatchCase:=False,Orientation:=xlTopToBottom,SortMethod_

:=xlPinYin

EndSub

5:双击单元执行宏(工作表代码)

PrivateSubWorksheet_BeforeDoubleClick(ByValTargetAsRange,CancelAsBoolean)

IfRange("$A$1")="关闭"Then

ExitSub

SelectCaseTarget.Address

Case"$A$4"

Call宏1

Cancel=True

Case"$B$4"

Call宏2

Cancel=True

Case"$C$4"

Call宏3

Cancel=True

Case"$E$4"

Call宏4

Cancel=True

EndSelect

EndSub

6:双击指定区域单元执行宏(工作表代码)

PrivateSubWorksheet_BeforeDoubleClick(ByValTargetAsRange,CancelAsBoolean)

IfRange("$A$1")="关闭"ThenExitSub

IfNotApplication.Intersect(Target,Range("A4:A9","C4:C9"))IsNothingThenCall打开隐藏表

EndSub

7:进入单元执行宏(工作表代码)

PrivateSubWorksheet_SelectionChange(ByValTargetAsRange)'以单元格进入代替按钮对象调用宏

IfRange("$A$1")="关闭"ThenExitSub

SelectCaseTarget.Address

Case"$A$5"'单元地址(Target.Address),或命名单元名字(Target.Name)

Call宏1

Case"$B$5"

Call宏2

Case"$C$5"

Call宏3

EndSelect

EndSub

8:进入指定区域单元执行宏(工作表代码)

PrivateSubWorksheet_SelectionChange(ByValTargetAsRange)

IfRange("$A$1")="关闭"ThenExitSub

IfNotApplication.Intersect(Target,Range("A4:A9","C4:C9"))IsNothingThenCall打开隐藏表

EndSub

9:在多个宏中依次循环执行一个(控件按钮代码)

PrivateSubCommandButton1_Click()

StaticRunMacroAsInteger

SelectCaseRunMacro

Case0

宏1

RunMacro=1

Case1

宏2

RunMacro=2

Case2

宏3

RunMacro=0

EndSelect

EndSub

10:在两个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码)

PrivateSubCommandButton1_Click()

WithCommandButton1

If.Caption="保护工作表"Then

Call保护工作表

.Caption="取消工作表保护"

ExitSub

EndIf

If.Caption="取消工作表保护"Then

Call取消工作表保护

.Caption="保护工作表"

ExitSub

EndIf

EndWith

EndSub

11:在三个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码)

OptionExplicitPrivateSubCommandButton1_Click()

WithCommandButton1

If.Caption="宏1"Then

Call宏1

.Caption="宏2"

ExitSub

EndIf

If.Caption="宏2"Then

Call宏2

.Caption="宏3"

ExitSub

EndIf

If.Caption="宏3"Then

Call宏3

.Caption="宏1"

ExitSub

EndIf

EndWith

EndSub

12:根据A1单元文本隐藏/显示按钮(控件按钮代码)

PrivateSubWorksheet_SelectionChange(ByValTargetAsRange)

IfRange("A1")>2Then

CommandButton1.Visible=1

Else

CommandButton1.Visible=0

EndIf

EndSub

PrivateSubCommandButton1_Click()

重排窗口

EndSub

13:当前单元返回按钮名称(控件按钮代码)

PrivateSubCommandButton1_Click()

ActiveCell=CommandButton1.Caption

EndSub

14:当前单元内容返回到按钮名称(控件按钮代码)

PrivateSubCommandButton1_Click()

CommandButton1.Caption=ActiveCell

EndSub

15:奇偶页分别打印

Sub奇偶页分别打印()

Dimi%,Ps%

Ps=ExecuteExcel4Macro("GET.DOCUMENT(50)")'总页数

MsgBox"现在打印奇数页,按确定开始."

Fori=1ToPsStep2

ActiveSheet.PrintOutfrom:=i,To:=i

Nexti

MsgBox"现在打印偶数页,按确定开始."

Fori=2ToPsStep2

ActiveSheet.PrintOutfrom:=i,To:=i

Nexti

EndSub

16:自动打印多工作表第一页

Sub自动打印多工作表第一页()

DimshAsInteger

Dimx

Dimy

Dimsy

Dimsyz

x=InputBox("请输入起始工作表名字:")

sy=InputBox("请输入结束工作表名字:")

y=Sheets(x).Index

syz=Sheets(sy).Index

Forsh=yTosyz

Sheets(sh).Select

Sheets(sh).PrintOutfrom:=1,To:=1

Nextsh

EndSub

17:查找A列文本循环插入分页符

Sub循环插入分页符()

'Selection=Workbooks("临时表").Sheets("表2").Range("A1")调用指定地址内容

DimiAsLong

DimtimesAsLong

times=Application.WorksheetFunction.CountIf(Sheet1.Range("a:a"),"分页")'times代表循环次数,执行前把times赋值即可(不可小于1,不可大于2147483647)

Fori=1Totimes

Call插入分页符

Nexti

EndSub

Sub插入分页符()

Cells.Find(What:="分页",After:=ActiveCell,LookIn:=xlValues,LookAt:=_

xlPart,SearchOrder:=xlByRows,SearchDirection:=xlNext,MatchCase:=False)_

.Activate

ActiveWindow.SelectedSheets.HPageBreaks.AddBefore:=ActiveCell

EndSub

Sub取消原分页()

Cells.Select

ActiveSheet.ResetAllPageBreaks

EndSub

18:将A列最后数据行以上的所有B列图片大小调整为所在单元大小

Sub将A列最后数据行以上的所有B列图片大小调整为所在单元大小()

DimPicAsPicture,i&

i=[A65536].End(xlUp).Row

ForEachPicInSheet1.Pictures

IfNotApplication.Intersect(Pic.TopLeftCell,Range("B1:B"&i))IsNothingThen

Pic.Top=Pic.TopLeftCell.Top

Pic.Left=Pic.TopLeftCell.Left

Pic.Height=Pic.TopLeftCell.Height

Pic.Width=Pic.TopLeftCell.Width

EndIf

Next

EndSub

19:返回光标所在行数

Sub返回光标所在行数()

x=ActiveCell.Row

Range("A1")=x

EndSub

20:在A1返回当前选中单元格数量

Sub在A1返回当前选中单元格数量()

[A1]=Selection.Count

EndSub

21:返回当前工作簿中工作表数量

Sub返回当前工作簿中工作表数量()

t=Application.Sheets.Count

MsgBoxt

EndSub

93:B列录入数据时在A列返回记录时间(工作表代码)

PublicSubWorksheet_Change(ByValTargetAsRange)

IfTarget.Column=2Then

Target.Offset(,-1)=Now

EndIf

EndSub

94:当指定区域修改时在其右侧的2个单元返回当前日期和时间(工作表代码)

PublicSubWorksheet_Change(ByValTargetAsRange)

IfNotApplication.Intersect(Target,[A1:A1000])IsNothingThen

IfTarget.Column=1Then

Target.Offset(,1)=Date

Target.Offset(,2)=Time

EndIf

EndIf

EndSub

PublicSubWorksheet_Change(ByValTargetAsRange)

IfNotApplication.Intersect(Target,[A1:A1000])IsNothingThen

IfTarget.Column=1Then

Target.Offset(,1)=Format(Now(),"yyyy-mm-dd")

Target.Offset(,2)=Format(Now(),"h:mm:ss")

EndIf

EndIf

EndSub

95:指定单元显示光标位置内容(工作表代码)

PrivateSubWorksheet_SelectionChange(ByValTAsRange)

Sheets(1).Range("A1")=Selection

EndSub

96:每编辑一个单元保存文件

PrivateSubWorksheet_Change(ByValTargetAsRange)

ThisWorkbook.Save

EndSub

97:指定允许编辑区域

Sub指定允许编辑区域()

ActiveSheet.ScrollArea="B8:G15"

EndSub

98:解除允许编辑区域限制

Sub解除允许编辑区域限制()

ActiveSheet.ScrollArea=""

EndSub

99:删除指定行

Sub删除指定行()

Workbooks("临时表").Sheets("表2").Range("5:5").Delete

EndSub

100:删除A列为指定内容的行

Sub删除A列为指定内容的行()

Dima,bAsInteger

a=Sheet1.[a65536].End(xlUp).Row

Forb=aTo2Step-1

IfCells(b,1).Value="删除"Then

Rows(b).Delete

EndIf

Next

EndSub

常用的vba编程代码大全

Visual Basic for Applications(简称VBA)是新一代标准宏语言,是基于Visual Basic for Windows 发展而来的。它与传统的汪郑宏语言不同,传统的宏语言不具有高级语言的特征,没有面向对象的程序设计概念和方法。而VBA 提供了面向对象的程序设计方法,提供了相当完整的程序设计语言。VBA 易于学习掌握,可以使用宏记录器记录用户的各种操作并将其转换为VBA 程序代码。这样用户可以容易地将日常工作转换为VBA 程序代码,使工作自动化。[1]

数据类型

基本数据类型

即Primary Type Data,下述列表的括号内为字节数:

Byte(1):无符号数类型,取值范围0-255

Boolean(2)

Integer(2)

Long(4)

Single(4)

Double(8)

Currency(8)

Decimal(14)

Date(8)

String

Object(4)

Variant戚余(根据分配确定)[2]

自定义的数据类型

相当于C语言的struct,例如:[2]

Type 自定义类型名 元素名 As 类型 … [元素名 As 类型] End Type

数组

Option Base 0 :数组索引值从0开始[2]

Option Base 1 :数组索引值从1开始

Dim MyArray(10) :声明一个数组变量,10是最大的可用的数组索引值

MyArray(5) = 101 :给数组的元素赋值

Dim Data(10,5) :声明一个二维数组变量

Data(1,1) = "A001" :给数组元素赋值

Dim cArr(-11 To 20, 1 To 3) As String :声明一个数组,定义数组索引值的上下界

Dim dArr() As String :声明动态数组

ReDim dArr(0 To 5, 1 To 2) :改变动态数组的尺寸默认把原数据清除。

以上就是vba经典代码应用大全的全部内容,《Excel VBA常用代码实战大全》主要介绍VBA常用对象的应用技巧、控件及用户窗体的应用技巧、对话框的应用技巧、函数的应用技巧,使用VBA操作文件等技巧,最后介绍了制作员工花名册、收据打印、员工考勤三个综合实例。

猜你喜欢