最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

常用代码锦集

来源:动视网 责编:小OO 时间:2025-09-24 20:49:25
文档

常用代码锦集

常调用代码锦集1.工作表Worksheets.Addbefore:=Worksheets(1)‘在sheet1前增加一个工作表Worksheets.Addafter:=Worksheets(1)’在工作表sheet1后增加一个工作表Worksheets.AddCount:=3‘在当前工作表前增加3个工作表Worksheets.Addafter:=Worksheets(1),Count:=3‘在sheet1后增加3个工作表Worksheets("Sheet10").Delete‘删除工作表Wor
推荐度:
导读常调用代码锦集1.工作表Worksheets.Addbefore:=Worksheets(1)‘在sheet1前增加一个工作表Worksheets.Addafter:=Worksheets(1)’在工作表sheet1后增加一个工作表Worksheets.AddCount:=3‘在当前工作表前增加3个工作表Worksheets.Addafter:=Worksheets(1),Count:=3‘在sheet1后增加3个工作表Worksheets("Sheet10").Delete‘删除工作表Wor
常调用代码锦集

1.工作表

Worksheets.Add before:=Worksheets(1) ‘在sheet1前增加一个工作表

Worksheets.Add after:=Worksheets(1) ’在工作表sheet1后增加一个工作表

Worksheets.Add Count:=3 ‘在当前工作表前增加3个工作表

Worksheets.Add after:=Worksheets(1), Count:=3 ‘在sheet1后增加3个工作表

Worksheets("Sheet10").Delete ‘删除工作表

Worksheets("Sheet2").Copy before:=Worksheets("Sheet2") ‘在sheet2前复制一个副本

Worksheets("Sheet2").Copy after:=Worksheets("Sheet2") ‘在sheet2后复制一个副本

Worksheets("Sheet2").Copy ‘复制sheet2到新的工作簿

2.工作簿

Workbooks.Open Filename:="E:\\baiduyundownload\打开工作簿实例.xls" ‘打开工作簿

Workbooks.Open Filename:=D:\\a.xls, UpdateLinks:=0, editable:=True '打开文件,属性设置为不更新,可编辑

a = Workbooks("VBA函数记录.xls").Path‘返回工作簿的绝对路径不包含文件名

a=ThisWorkbook.FullName ‘本工作簿的绝对路径

a = CurDir‘返回当前工作簿的路径,不包含文件名

Workbooks("打开工作簿实例.xls").Close‘关闭工作簿

Workbooks("打开工作簿实例.xls").Close savechanges:=True’ 关闭并保存工作簿

ThisWorkbook.Save‘本工作簿保存

ThisWorkbook.SaveAs Filename:="E:\备份1.xls"本工作簿保存为,并打开新工作簿

ThisWorkbook.SaveCopyAs Filename:="E:\备份.xls" ‘本工作簿另存为,留在本工作簿

Workbooks.Add ’增加工作簿

Workbooks("打开工作簿实例.xls").Activate

3.单元格

Range("a1").Select         '单元格

Range("a:a").Select        '列

Range("1:3").Select       '行

Range("a1:b10").Select     '相邻区域

Range("a1:d7,c4:e8").Select  '不相个邻区域

Range("a1:b10").Select '一般写法

Range("a1", "b10").Select '变化写法1

Range(Range("a1"), Range("b10")).Select '变化写法2

Range("a:a").Count '计数工作表最大的行数

Range("1:1").Count '计算工作表最大的列数

Application.CountA(Range("a:a")) '计算工作表已使用的行数

Application.CountA(Range("1:1")) '计算工作表已使用的列数

i = Application.CountA(Range("c:c")) '找到c列中已使用的最后一个单元格位置

Range("b2:d4").Range("b2").Select '相对引用的写法,参照前一个range的左上单元格

Range("c3:e5")(2).Select ‘选定d3,引用顺序是:从左向右,从上到下选取

Range("a1:c4")(3, 2).Select '利用行号与列号定位,选中B3

Cells(3, 4).Select '行列号均为数字,cells不能引用一个区域,只能引用一个单元格

Cells(2, "c").Select '行为数字,列为列标字母

Range("b3:f11").Cells(2, 2).Select

Range("b3:f11").Cells(6).Select '从左到右,从上到下

Range("b3:f11")(6).Select '与上一句相等

Range(Range("b1"), Range("f11")).Select '这种嵌套方法写变量比较麻烦

Range(Cells(3, 2), Cells(11, 6)).Select '这种嵌套方法写变量比较方便

[a1].EntireColumn.Select  选取a1单元格所在整列,后面还有知识要学

[a1:a4].EntireRow.Select ‘选取a1:a4所在的整行,后面还有知识要学

[a3].Select ' 单元格引用

[b2:c6].Select '单元格区域引用

[a3,b2:c6,b8:d12].Select '多区域引用

[a:a].Select '整列引用

[1:1].Select '整行引用

Range(Range("a1"), Range(Chr( + b) & a)).Select '利用chr函数,让字母形式的列号也支持变量

Columns(1).Select‘列引用

Columns("b").Select‘列引用

Columns("c:e").Select‘列引用

Rows(1).Select ‘行引用

Rows("2").Select‘行引用

Rows("3:4").Select‘行引用

Range("1:1").Select ‘行引用

Range("2:4").Select‘行引用

Range("a:a").Select‘列引用

Range("b:d").Select‘列引用

[a9] = [b2:f2].Address(1, 1)  '绝对引用 返回$B$2:$F$2

[b9] = [b2:f2].Address(0, 0)  '相对引用,返回B2:F2

[c9] = [b2:f2].Address(1, 0)   '混合引用,返回B$2:F$2

[d9] = [b2:f2].Address(0, 1)   '混合引用,返回$B2:$F2

Range("a1:d8").Cut Range("f1") '将单元格区域剪切到指定的区域

Range("f1:i8").Copy Range("a1") '将单元格区域复制到指定的区域

[a2].Resize(i, j).Copy Sheet2.[a1].Offset(k) '将单元格区域复制到指定的区域

Range("a10:d17") = Range("a1:d8").Value 等号后的区域一定要加value.否则不成功

Worksheets("Sheet2").Range("A2") = 100 ‘单元格赋值

a = Worksheets("sheet2").[a2].Value‘从单元格取值

a = Sheet1.[a65536].End(xlUp).Row ‘找到A列最后一个有数据的单元格,其中a65536可以用a:a代替

k = Cells(1, "n").End(xlToLeft).Column ‘找到n1单元格所在行最右侧数据的列号

a = Application.CountA(Range("a:a")) ‘计算非空单元格个数,空行不计算在内

Sheet1.UsedRange.Select ‘已使用的单元格全选,没内容有格式也会选到

[a1].CurrentRegion.Select‘有一个区域与usedrange一样,有多个则只选一个

endrng = Cells.Find("*", , xlFormulas, , , xlPrevious) ‘寻找最后一个有内容的单元格

查找最后的单元格

a = Cells(Rows.Count, 1).End(xlUp).Row 'end属性

b = Columns(1).Find("*", , , , , xlPrevious).Row 'find方法

c = Cells.SpecialCells(xlCellTypeLastCell).Row 'specialcells方法

d = Sheet1.UsedRange.Rows.Count 'usedrange属性

e = [a1].CurrentRegion.Rows.Count 'currentregion属性

f = WorksheetFunction.CountA([a:a]) '工作表函数counta

g = Application.CountIf([a:a], "<>") '工作表函数countif

Cells(Myr, 9).Resize(1, 12) = .Cells(r1.Row, 2).Resize(1, 12).Value '从指定单元格行扩展12列存入r1单元格扩展12列数据

Cells(m + 1, 7) = Sheet2.Range(arr(a)).Offset(2, 3) ‘选定单元格下移2行3列后的单元格

[a1:d1].Offset(1, 2).Select ‘将a1:d1单元格整体偏移1行2列,偏移后也区域尺寸不变

Cells(m + 1, 9).NumberFormatLocal = "yyyy-m-d" '设置日期格式为年月日

Cells(m + 1, 1).NumberFormatLocal = "0.00_ " '将数据格式设置为保留两位小数

Range("a4", "j4" ).ClearContents ‘清楚单元格内容,不清除格式

ActiveSheet.Rows("2:65536").Clear ‘活动工作表从2到65536行清除内容,包括格式

4.文本查找定位

MyChar = Chr(65)    ' 返回 A。大写A-Z为65-90,小写a-z 为97-122

Filepath = "C:\\WINDOWS\\system32";a = InStrRev(Filepath, "\\")最后一个\出现的位数,例子第11位

a = InStr(Filepath, "\\")‘最前一个\出现的位数,例子第三位

a = Left(Filepath, InStrRev(Filepath, "\\") - 1)‘取左字符串,例子C:\\WINDOWS

a=Right(Sht.Name, 1) ‘在sht工作表名称右侧取一个字符

Len(Range("A2"))‘返回单元格内文本长度

Cells(Myr, 2) = Mid(wb1.Path, aa + 1) '取出\后面的文件夹名称填入本表相应行的第二列,语法为Mid(string, start[, length])取出string中从start位置开始向后的长度为length的字符串,可省略length。 Path返回的是文件所在文件夹的路径,不包含文件名。

r1 = .[a:a].Find("1", , , 1)  '在a列中精确查找1值所在的单元格,也可以用find(”1”, Lookat:=xlwhole)表达式.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)

Set r = Sheet2.[d:d].Find("HC", , , 1) '使用find和findnext找出d列所有HC存入arr数组

f = r.Address

Do

i = i + 1

arr(i) = r.Address

Set r = Sheet2.[d:d].FindNext(r)

Loop While Not r Is Nothing And r.Address <> f

字符串查找方法(A字符串是否包含B字符串):

方法一:用like函数。例如a=“abcd” like “*bc*”。返回值为True

方法二:用Instr函数。例如 a= InStr(S1,S2),查找S2在S1中出现的位置,如果为0就是没有,如果有就会返回所在S1中的第几位。

5.数组

arr3 = Application.Transpose(arr2)‘'数组转置

arr(3) = "我" 数组赋值

arr1 = [{"A数组赋值,“,”号为行,生成一维数组,下标从1开始

arr2 = Application.Transpose([{1;2;3;4}])数组赋值,“;”号为列,生成二维数组,转置

arr = Array(1, 2, 3, 4),数组赋值,一维数组,下标从0开始

arr1 = Array(Array("a", "b"), Array(1, 2, 3))数组赋值,2行3列

arr = Application.Transpose([a1:a4]) '注意:当向数组中批量写入多行,结果就是二维数组

Range("d1:d4" ) = arr 读取数组数值

[e2].Resize(k, 2) = arr1 '循环结束后将arr1的结果赋值给单元格区域,注意对准尺寸

WorksheetFunction.Sum(arr) 返回数组和值

WorksheetFunction.Average(arr) 返回数组平均值

WorksheetFunction.Max(arr) 返回数组最大值

WorksheetFunction.Min(arr) 返回数组最小值

WorksheetFunction.Small(arr, k) 返回数组第k格极小值

WorksheetFunction.Large(arr, k) 返回数组第k格极大值

UBound(arr, 3) 用来确定数组第3维的上界

LBound(arr) 用来确定数组某一维的下界

ReDim [Preserve] varname( ) [As type]'可以使用 ReDim 语句反复地改变数组的元素以及维数的数目

ReDim arr(1 To 5) ‘重新定义arr为1到5

ReDim Preserve arr(1 To 5) ‘重新定义arr为1到5,保留原来的数据

6.循环语句结构

For Each sht In Worksheets Next sht

If Not c <> "" Then Exit For '如果f1数据为空,则退出循环

If rs = 1 Then GoTo 100  带goto跳转的语句结构

Range("a2:d" & rs).Copy Sheets("出差记录表").Range("a" & crs)

End

100:

MsgBox "没有要保存的数据!"

End Sub

For循环如何想倒序从大到小执行就要在for后面加上step -1

7.通用声明

Application.DisplayAlerts = False ‘去除警告提醒

Application.ScreenUpdating = False ‘去除屏幕更新

On Error Resume Next '程序出错继续执行下一个语句

On Error GoTo 0 ‘程序出错转到 0

8.其他函数

fun = Int(Rnd() * 10) + 1‘自定义fun函数返回固定值

Application.Volatile True

fun1 = Int(Rnd() * 10) + 1 ‘自定义fun1函数按F9返回动态值

Application.WorksheetFunction.CountIf(Range("A2:A8"), ">=2")‘查找有多少个满足条件的条目,其中application.可以省略

Cells(Myr, 6) = Application.Max(.Range("r6:r8)) '取出r6:r8中的最高值

MyNumber = Int(99.8) ' 返回 99,如果 number 为负数,则 Int 返回小于或等于 number 的第一个负整数。

MyNumber = Fix(99.2)    ' 返回 99,如果 number 为负数, Fix 则会返回大于或等于 number 的第一个负整数。

MyResult = 10 Mod 5    ' 返回 0,用来对两个数作除法并且只返回余数

MyCheck = IsNumeric(MyVar) ' 返回 True,返回 Boolean 值,指出表达式的运算结果是否为数

9.文件遍历操作代码

Dim fso As New FileSystemObject  ‘遍历当前文件夹中的子文件夹

StartFolder = ThisWorkbook.Path  

Set fd = fso.GetFolder(StartFolder)

If fd.SubFolders.Count = 0 Then Exit Sub

For Each sfd In fd.SubFolders

cntFiles = cntFiles + 1

arrFiles(cntFiles) = sfd.Path

Next

使用前需要加载工具-引用 Mecro script runtime 选项也可以在代码加入Set fs = CreateObject("Scripting.FileSystemObject")但是代码还不会用(例子见FileSystemObject操作全集)

Dir(MyPath & "*.xls") ' 遍历MyPath文件夹中所有xls文件,其中xlsm也会被搜索到,只返回文件名称

MyName = Dir(D:\\*.xls") ‘使用Dir命令遍历本文件夹下所有后缀为xls的文件

Do While MyName <> ""

If MyName <> ThisWorkbook.Name Then '

Workbooks.Open Filename:=MyPath & MyName, UpdateLinks:=0, editable:=True 

End If

MyName = Dir '继续遍历下一个excel文件

Loop

With GetObject(绝对路径)‘使用GetObject获取指定路径的文件

arr = .Sheets(1).UsedRange

.Close False

End With 

语法:GetObject([pathname] [, class]),前面加上循环路径就可以遍历文件夹下所有excel文件并提取其中的内容了。暂时尚未使用过。

10.备注操作

添加EXCL备注 Range("A1").AddComment Text:="我的批注"

判断是否存在备注 Range("A1").Comment Is Nothing

更改备注 Range("A1").Comment.Text Text:="新备注"

隐藏备注 Range("A1").Comment.Visible = False

删除EXCEL备注 Range("A1").Comment.Delete

备注高度更改Range("G" & i).Comment.Shape.Height = 550

备注宽度更改Range("G" & i).Comment.Shape.Width = 200

11.单元格格式设置:

Cells(1, 1).NumberFormatLocal = "yyyy-m-d" '设置日期格式为年月日

Cells(m + 1, 1). NumberFormatLocal = "0.00_ " '设置为保留两位小数

Cells(m + 1, 1). NumberFormat = "@" ‘设置单元格为文本格式

Cells(1, 1).Font.ColorIndex = 3 '字的颜色号为3 红色

Cells(1, 1).Interior.ColorIndex = 3 ' 背景的颜色为3 红色

Cells(2, 1).Font.Color = RGB(0, 255, 0) '字的颜色绿色

Cells(2, 1).Interior.Color = RGB(0, 0, 255) '背景的颜色蓝色

文档

常用代码锦集

常调用代码锦集1.工作表Worksheets.Addbefore:=Worksheets(1)‘在sheet1前增加一个工作表Worksheets.Addafter:=Worksheets(1)’在工作表sheet1后增加一个工作表Worksheets.AddCount:=3‘在当前工作表前增加3个工作表Worksheets.Addafter:=Worksheets(1),Count:=3‘在sheet1后增加3个工作表Worksheets("Sheet10").Delete‘删除工作表Wor
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top