1、创建新工作簿更好的方法是将其分配给一个对象变量。下例中,由 Add 方法返回的 Workbook 对 象分配给了对象变量 newBook。然后,又 设置了 newBook 的若干属性。使用对象变量可以很容易地控制新工作簿。Sub AddNew()Set NewBook = Workbooks.AddWith NewBook.Title = “All Sales“.Subject = “Sales“.SaveAs Filename:=“Allsales.xls“End WithEnd Sub81-10081、Rem:将活动单元格从 A5 移到 A6,并将 A6 单元格的数值保存到 x 变量中ra
2、nge(“A5 “).select 此命令就是选择 A5 单元格Activecell.offset(1,0).selectX=activecell.value82、用代码窗口中可用 F8 运行宏,Alt+F8 显示宏对话框,Alt+F11 可以打开 VBE 编辑器83、Option Explicit 在程序代码前使用该命令,则变量要在声明后才能使用,否则编译程序无法识别该变量,从而产生错误信息84、Load 语句用于加 载窗体,加载后将占用内存,Hide 方法使窗体隐藏,但仍在内存中,故不再使用窗体时应使用 Uuload 语句及时卸载,将内存交还系统,Show 方法用来显示一个窗体,格式: 窗
3、体名称.show 模式,模式可取 0 或 1,为 1 时,不能到其他窗体操作,只有关闭该窗体后才能对其他窗体操作85、控件的命名规则,通常使用 3 个字母的前缀命名控件,如 Label 的前缀为 lbl,初学者最好养成良好的命名习惯86、按下 Ctrl+Enter 键单元格不移 动。87、按下 F2 键直接在单元格内编辑,不需动鼠标88、命令按钮不支持双击(Dbclick)事件89、Private Sub CheckBox1_Click()If CheckBox1.Value ThenMsgBox “333“ElseMsgBox “666“End IfEnd Sub本段的主要用意在于明白了 I
4、f CheckBox1.Value Then 与 If CheckBox1.Value=True Then90、Timer 是计时器,功能是按指定时间间隔产生定时事件91、在一个语句要分行显示的地方加一个或多个空格,加一个下划 线然后回车转入下一物理行,作用在于代码一行写不下时续行,程序代码中一行较短时可加:把多行连成一行显示92、if a15 then b=10elseb=100end if可改为如下 if 语句b=iif(a.15,10,100)93、F12 用于启动另存为对话框94、x=shell(calc.exe,1)可打开计算器程序95、call 语句格式:Call()如果过程本身没
5、有参数,则实参和括号可省略,并报参数放在括号中,另一个调用 Sub 过程的方法是: 比前一个少了 Call 和括号,子 过程调用语句的实参在数目、 类型、排列上与子过程定义语句的形式参数表一致96、自定义函数一例,求 abc 三个数的平均Private Function Passed(By Val a As integer, By Val b As integer, By Val c As integer)ave=(a+b+c)/3End Sub在定义时必须向函数过程名赋值,而子程序名不能赋值97、在工作表任意单元格输入=Cell(“filename“)可获得文件的完整路径、文件名和工作表名9
6、8、在打开 Excel 文件时按住 Shift 键,将不运行 VBA 过程,可防止宏病毒,单击文件 关闭命令,在点关闭时按住 Shift 键将在不运行 VBA 过 程的情况下关闭工作簿,可防止关闭时自动运行的宏病毒。99、让一个变量得到单元格 A1 到 A5 的总和(变量设为 X),X=Sum(Range(“A1:A5”) 错X=Application.WorksheetFunction.Sum(Range(“A1:A5”)正确也就是说必须通过 Application 的 WorksheetFunction 属性间接调用工作表函数100、Rem 和是注释符,注释语句是非执行语句,要养成对代码注
7、释的习惯。101-120101、ActiveSheet.Next.Select 选择活动工作表下一张工作表, ActiveSheet.Previous.Select 选上一张102、单 元格 B2:B10 数值不全为空用 IF 语句表达For Each cl in ActiveSheet.Range(“B2:B10“)If cl.Value 50000 以红色填充单元格“的条件,出现的问题:表头(数值为文本) 的单元格也呈红色显示。我知道,原因是因为区域选择得不对,如果只选择数字区域不会出现这种情况,如果表结构简单,则好处理,如果表格结构复杂,这样选择就很麻烦。有没有办法选择整张表,但是表头(
8、数值为文本)的单元格不被条件格式。答:条件格式设置公式=-A150000问=-A150000 中的-代表什么意思,答:转变为数值.与+0,*1,是一样的效果。57、 、如何打印行号列标?答:文件菜单-页面设置 -工作表- 在打印选项中的行号列 标前打勾。58、如何打印不连续区域?答:按 CTRL 键不松,选取区域,再点文件菜单中的打印区域- 设置打印区域。59、打印时怎样自动隐去被 0 除的错误提示值?答:页面设置工作表,错误值打印为空白如何设置 A1 当工作表打印页数为 1 页时,A1=1,打印页数为 2 页时,A2=2,.?答:插入名称 a=GET.DOCUMENT(50, “Sheet1
9、“)&T(NOW(),在 A1 输入=a69、如何用函数来获取单元格地址=ADDRESS(ROW(),COLUMN()70、求 A1:B10 中 A 列等于 1 的对应 B 列中的最小值=min(if(a1:a10=1,b1:b10)输入后按 ctrl+shift+enter 完成。72、如何统计 A1:A10,D1:D10 中的人数?答:=COUNTA(A1:A10,D1:D10)答:是不是按下了 ScrollLock 键。方法一:使用自定义函数:Function bookname()bookname = ActiveSheet.NameEnd Function使用:在单元格中输入公式:=b
10、ookname() ,即可返回当前工作簿的 标签名字 方法二:使用系统函数 Cell():在单元格中输入公式:=Cell(“filename“) 就会返回该工作簿和工作表的名字(包括绝对路径名) ,剩下的就根据你自己的需要运用一些文本处理函数对它进行处理就行了(说明:该函数必须在工作簿已经保存的情况下才生效) 103、今天是 10 月 31 日,我希望一个月后应该是 11 月 30 日工具加载宏 VBA 分析工具库=edate(today(),1) 120、VBA 从哪学起1、录制宏;2、数据类型(主是整型和字符串型) ;3、程序结构(主要是分支,判断,循环) ;4、EXCEL 对象(单元格,
11、工作表,工作薄124、请 教如何筛选出特殊颜色的数据。定义名称.X=GET.CELL(24, 单元格),辅助列=X按辅助列筛选125、如何快速查看名称133、对 于一些不可打印的字符(在 Excel 显示中类似空格) ,直接用替换方法不容易去掉。=SUBSTITUTE(CLEAN(A1),“ “,“)139、图 片批注右击带批注的单元格编辑批注在批注边框上右击设置批注格式颜色与线条单击“颜色”填充效果图片选择图片.141、在一年中,显示是第几天用什么函数呢?=a1-date(year(a1),1,0)将单元格格式设置为常规144、如何用公式求出最大值所在的行?如 A1:A10 中有 10 个数
12、,怎么求出最大的数在哪个单元格?=MATCH(LARGE(A1:A10,1),A1:A10,0)=ADDRESS(MATCH(SMALL(A1:A10,COUNTA(A1:A10),A1:A10,0),1)=ADDRESS(MATCH(MAX(A1:A10,1),A1:A10,0),1)145、返回最末行位置1、如果能确定某一行的数据到达数据区的最后一行:能确定某列数据间不会有空格,使用 counta 对该列计数;不能确定某列数据间会不会有空格,使用 lookup 找最后单元格行号;2、什么都不能确定,使用数组公式 max(a1:j5600)“,不包括引号,然后同时按住 shift 和 ctrl 再按 enter键。147、如何 让工作表奇数行背景是红色偶数行背景是蓝色?用条件格式=ROW()/2=INT(ROW()/2)设定颜色条件格式: 公式为 =MOD(ROW(),2)=0150、A1:A10 数字显为文本格式时,如何求和=SUMPRODUCT(A1:A10