ExcelVBA如何存放代码?
亲,是这样的。2003版的确可以保存带VBA代码的文件,不用更改扩展名。但是,您也一定发现,当你要运行宏时,必须在安全性设置里启用宏,比较麻烦。
2007版以上进行了改进,可以直接把带VBA代码的文件另存为xlsm。这样,打开这个文件,可以直接运行宏。
excelvba目录结构?
1、打开事先准备好的Excel文件2、工具栏/开发工具/VisualBasic,打开MicrosoftVisualBasic,也可使用快捷键AltF11,3、然后,选择VBAProject/MicrosoftExcel对象/sheet1(sheet1),在右边窗口输入以下程序:Sub根据工作表创建目录()DimiAsInteger,BiaoAsWorksheeti2ForEachBiaoInWorksheetsCells(i,A)i1NextBiaoEndSub程序已经编制完成!
4、最后,工具栏/开发工具/宏(快捷键AltF8),查看宏,选择已编制好的宏“根据工作表创建目录”,执行,就会根据工作表创建对应目录。
也可直接在MicrosoftVisualBasic中执行,工具栏/运行/运行子过程/用户窗体,或者直接点击菜单栏中类似于三角形的按键。
ExcelVBA选取单元格有哪些方法和技巧?
VBA选取单元格的8种方法
本技巧目的:掌握单元格的各种引用方法
Excel就是由基本元素--单元格构成的,它就像我们身体的细胞一样,可是非常重要的,千万不能小看它的作用。不论是学习vba还是操作Excel本身,最先接触到的就是单元格,只有熟练的掌握了,才能进行后续的操作。注意:下面所有的标点符号全部使用半角,或者说英文标点。代码中不区分大小写。使用代码助手可以实现代码的快速输入。代码助手下载地址Range属性
单个单元格的表示方法:
表示方法:Sheet1.Range(A1)
注释:1)工作表Sheet1的单元格:A1,书写格式:Sheet1.Range(英文字母数字)2)保持良好的习惯加上工作表名称,对于后续跨工作表的操作会减少很多的问题。就像寄快递时要把小区的每栋楼的编号写上一样,不会发生快递寄到隔壁楼的问题哟。单元格地址选中使用命令:.SelectSheet1.Range(A1).Select多个单元格的表示方法:
连续单元格:A3到C6单元格表示方法:Sheet1.range(A3:C6)注释:1)书写方法:Sheet1.(英文字母数字:英文字母数字)2)首尾单元格之间用:连接二组连续单元格,组合起来的方法:A3到C6单元格,E7到G11单元格表示方法:Sheet1.range(A3:C6,E7:G11)Sheet1.range(A3:C6,E7:G11).Select注释:1)书写方法:Sheet1.(英文字母数字:英文字母数字,英文字母数字:英文字母数字)2)二组不连续的地址,中间用,分隔3)要点:连续单元格:首尾之间用:来连接,二段不连续的单元格组合用,分隔2.Cells属性
小技巧:安装代码助手后,alt数字0:可以快速转换列号为数字或者英文字母单个单元格:
表示方法:sheet1.cells(1,1)或者sheet1.cells(1,A)注释:1)括号内前面代表:行后面代表:列,用,分隔2)二种方法:①前后都使用数字②前面使用数字,后面用英文字母代表列号③注意:英文字母要加双引号多个单元格的表示方法:
连续单元格:B2到D7单元格表示方法:sheet1.Range(sheet1.cells(2,2),sheet1.cells(7,4))或者sheet1.Range(sheet1.cells(2,B),sheet1.cells(7,D))注释:书写方法:sheet1.range(工作表名称.左上方单元格,工作表名称.右下方单元格)Range和Cells总结:
1)Range和Cells书写方法不同:Range(A1)和Cells(1,1)或者Cells(1,A)所指的单元格是相同的2)Range:写好后,后面加上.系统会出现提示,Cells没有3)Range:可以表示连续的单元格4)Cells:更方便,直接写行,列号,中间用英文逗号分隔,不需要使用字符串拼接。它是在循环中根据行列号访问的主要手段例如:Range(Aamp)Cells(,A)3.方括号[]
Sheet1.Range(A1)可以写成sheet1.[A1]Sheet1.range(A1:C1)可以写成sheet1.[A1:C1]注意:只能使用列号的英文字母或者行号数字,不能使用变量4.Offset属性
Offset的使用方法:以某单元格作为起点,然后以他为起点向上下,左右偏移。
1)需求:当用户选中单元格后,需要在选中的单元格左上单元格写入数字1,且选中单元格是未知的。2)有了Offset属性,只需要在Selection后输入偏移的行列号,就能实现输入。3)实现方法:(-1,-1)1这样书写是不是很方便呢?二种方法:使用offset,假设以B3为起点,这个起点位置可以根据自己的要求来设定。书写方法:Sheet1.range(B3).offset(0,1)注释:1)代表:B3开始,不偏移行,向右偏移一列,即C3单元格2)offset括号内前面数字代表行,后面数字代表列3)数字0代表:不偏移4)数字-1代表:向上或者向左偏移例如1:Sheet1.range(B4).offset(-1,1)即:B4向上偏移一行,向右偏移一列,即C3单元格例如2:Sheet1.range(D5).offset(-2,-1)即:D5向上偏移二行,向左偏移一列,即C3单元格使用range或者cells,假设以B3为起点,这个起点位置可以根据自己的要求来设定。书写方法:sheet1.range(B3).cells(1,2)或者sheet1.range(B3).range(B1)注释:1)上面书写方法代表:B3开始,不偏移行,向右偏移一列,即C3单元格2)详解:①不能向上或者向左偏移②数字1代表:本行,本列③数字2代表:向下1行或者向右1列④数字3代表:向下2行或者向右2列⑤后面以此类推,每增加1,偏移也增加1⑥Range中的英文字母可以当作数字来看即B代表数字2,C代表数字35.Resize属性
要求:表示上图的B3:E10单元格同理:首先以某单元格作为起点,然后以他为坐标向上下,左右扩展。这里是使用扩展哦。好处和前面说的Offset是一样的:修改方便,另外即使是未知位置单元格也能扩展。书写方法:Sheet1.Range(B3).Resize(8,4)注释:1)上面书写方法代表:B3开始,(含本行本列)共扩展8行,4列,即B3:E10单元格2)详解:①数字1代表:本行,本列②数字2代表扩展:向下1行或者向右1列③数字3代表扩展:向下2行或者向右2列④后面以此类推,每增加1,扩展也增加1offset,resize组合联合使用这两个属性是可以组合使用的。这样对于后期的改动会更为方便快捷。
要求:表示C3:E9单元格书写方法:Sheet1.Range(A1).Offset(2,2).Resize(7,3)注释:1)A1单元格偏移:向下2行向右2列再扩展:向下7行向右3列2)偏移,扩展可以前后随意组合Offset、Range和Resize总结
6.Union属性
连接二个不连续的区域:B3:D8,G10:I15书写方法:Union(Sheet1.Range(B3:D8),Sheet1.Range(G10:I15))7.Usedrange属性
书写方法:注释:1)确定Sheet1的已使用区域2)该代码所表示的地址为:A1:D7
书写方法:注释:1)该代码所表示的地址为:A1:G112)注意:F10:G10区域即使为空格,表示的地址也会是A1:G118.CurrentRegion属性
书写方法:Sheet1.Range(A1).CurrentRegion注释:1)以A1为起点的连续区域2)该代码表示的地址为:A1:D7书写方法:Sheet1.Range(F10).CurrentRegion注释:该代码表示的地址为:F10:G11