excel-vba编程常用代码

上传人:suns****4568 文档编号:60804318 上传时间:2018-11-18 格式:PDF 页数:17 大小:163.76KB
返回 下载 相关 举报
excel-vba编程常用代码_第1页
第1页 / 共17页
excel-vba编程常用代码_第2页
第2页 / 共17页
excel-vba编程常用代码_第3页
第3页 / 共17页
excel-vba编程常用代码_第4页
第4页 / 共17页
excel-vba编程常用代码_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《excel-vba编程常用代码》由会员分享,可在线阅读,更多相关《excel-vba编程常用代码(17页珍藏版)》请在金锄头文库上搜索。

1、ExcelExcel VBAVBA 编程常用代码编程常用代码 时间时间:2009-12-05 22:36:04来源来源:本站作者作者:未知我要投稿我 要收藏投稿指南 用过VB的人都应该知道如何声明变量, 在VBA中声明变量和VB中是完全一样的! 使用 Dim 语句 Dim a as integer 声明 a 为整型变量 Dim a 声明 a 为变体变量 Dim a as string 声明 a 为字符串变量 Dim a as currency ,b as currency ,c as currency 声明 a,b,c 为货币变量 声明变量可以是:Byte、Boolean、Integer、Lo

2、ng、Currency、Single、Double、 Decimal(当前不支持)、Date、String(只限变长字符串)、String * length (定长字符串)、Object、Variant、用户定义类型或对象类型。 强制声明变量 Option Explicit 说明:该语句必在任何过程之前出现在模块中。 声明常数 用来代替文字值。 Const 常数的默认状态是 Private。 Const My = 456 声明 Public 常数。 Public Const MyString = “HELP“ 声明 Private Integer 常数。 Private Const MyInt

3、 As Integer = 5 在同一行里声明多个常数。 Const MyStr = “Hello“, MyDouble As Double = 3.4567 选择当前单元格所在区域 在 EXCEL97 中,有一个十分好的功能,他就是把鼠标放置在一个有效数据单元格 中,执行该段代码,你就可以将连在一起的一片数据全部选中。只要将该段代码 加入到你的模块中。 Sub My_Select Selection.CurrentRegion.Select End sub 返回当前单元格中数据删除前后空格后的值 sub my_trim msgbox Trim(ActiveCell.Value) end su

4、b 单元格位移 sub my_offset ActiveCell.Offset(0, 1).Select当前单元格向左移动一格 ActiveCell.Offset(0, -1).Select当前单元格向右移动一格 ActiveCell.Offset(1 , 0).Select当前单元格向下移动一格 ActiveCell.Offset(-1 , 0).Select当前单元格向上移动一格 end sub 如果上述程序产生错误那是因为单元格不能移动,为了解除上述错误,我们可以 往 sub my_offset 之下加一段代码 on error resume next 注意以下代码都不再添加 sub “

5、代码名称” 和 end sub 请自己添加! 给当前单元格赋值 ActiveCell.Value = “你好!“ 给指定单元格赋值 例如:单元格内容设为“ Range(“a1“).value=“hello“ 又如:你现在的工作簿在 sheet1 上,你要往 sheet2 的单元格中插入“ “ 1. sheets(“sheet2“).select range(“a1“).value=“hello“ 或 2. Sheets(“sheet1“).Range(“a1“).Value = “hello“ 说明: 1.sheet2 被选中,然后在将“HELLO“赋到 A1 单元格中。 2.sheet2 不

6、必被选中,即可“HELLO“赋到 sheet2 的 A1 单元格中。 隐藏工作表 隐藏 SHEET1 这张工作表 sheets(“sheet1“).Visible=False 显示 SHEET1 这张工作表 sheets(“sheet1“).Visible=True 打印预览 有时候我们想把所有的 EXCEL 中的 SHEET 都打印预览,请使用该段代码,它将在 你现有的工作簿中循环,直到最后一个工作簿结束循环预览。 Dim my As Worksheet For Each my In Worksheets my.PrintPreview Next my 得到当前单元格的地址 msgbox A

7、ctiveCell.Address 得到当前日期及时间 msgbox date 输入时间,Ctrl+Shift+: 插入超级链接,Ctrl+K 完成单元格输入,Enter 将当前单元格上方单元格中的数值复制到当前单元格或编辑栏,Ctrl+Shift+(双 引号) 将当前单元格上方单元格中的公式复制到当前单元格或编辑栏, Ctrl+(单引号) 在显示单元格值与单元格公式间转换,Ctrl+(撇号) 输入数组公式,Ctrl+Shift+Enter 键入有效函数名后,显示公式选项板,Ctrl+A 键入有效函数名后,为该函数插入变量名和括号,Ctrl+Shift+A 显示“记忆式键入”列表,Ctrl+下

8、方向键 快捷键与数据格式设置 显示“样式”命令,Alt+(单引号) 显示“单元格”命令,Ctrl+1 应用常规数字格式,Ctrl+Shift+ 应用带两个小数位的“贷币”格式,Ctrl+Shift+$ 应用不带小数位的“百分比”格式,Ctrl+shift+% 应用带两个小数位的“科学记数”数字格式,Ctrl+shift+ 应用年月日“日期”格式,Ctrl+shift+# 应用小时和分钟“时间”格式,并表明上午或下午,Ctrl+shift+ 应用外边框,Ctrl+shift+ 检查单元格是否位于最后一列。 If ColumnCount = Selection.Columns.Count Then

9、 如果是,则写入一个空行。 Print #FileNum, Else 否则,则写入一个逗号。 Print #FileNum, “,“; End If 开始 ColumnCount 循环的下一个迭代。 Next ColumnCount 开始 RowCount 循环的下一个迭代。 Next RowCount 关闭目标文件。 Close #FileNum End Sub 4. 运行该宏之前,请选择要导出的数据,然后在“工具”菜单中指向“宏”并 单击“宏”。 5. 选择 QuoteCommaExport 宏,然后单击“运行”。 计算包含公式、文本或数字的单元格数量 在 Excel 中,您可以对包含公式

10、、文本或数字的工作表中的单元格数量进行计 算, 方法是使用“定位条件”对话框选择单元格,然后运行计算所选单元格数量 的宏。 例如,当您需要设置表格以确定合计列的每一行是否都包含公式而不用手 动检查每一行时,此方法可能很有用。 选择单元格 要选择公式、文本或数字,请执行以下步骤: 1. 在“编辑”菜单中,单击“定位”,然后单击“定位条件”。 2. 在“定位条件”对话框中, 要选择所有公式, 请单击“公式”并确保选中“数 字”、 “文本”、 “逻辑值”以及“错误”复选框。 要选择文本, 请选择“常量” 选项,然后仅单击并选中“文本”复选框。要选择数字,请选择“常量”选项, 然后仅单击并选中“数字”

11、复选框。 计算所选单元格数量的 VBA 代码 要计算所选的单元格数量并在消息框中显示计算结果,请使用以下程序: Sub Count_Selection() Dim cell As Object Dim count As Integer count = 0 For Each cell In Selection count = count + 1 Next cell MsgBox count & “ item(s) selected“ End Sub 您可以将此程序指定给一个命令按钮,这样,当您单击该按钮时,将显示所选项 的数量。 使用 Saved 属性确定工作簿是否已发生更改 可以通过检查工作簿

12、的 Saved 属性来确定工作簿是否已发生更改。根据工作簿 是否发生了更改,Saved 属性将返回 True 或 False 值。 注意:用户除了可以通过“事件”设置 Saved 属性外,还可以通过代码将其设 置为 True 或 False。 本节包含的示例宏说明了如何在这两种情况下使用 Saved 属性。 工作表中的各种情况(例如存在可变函数)都可能会影响 Saved 属性。可变函 数是指工作表中每次发生更改时都会重新计算的函数, 而不管发生的更改是否影 响到这些函数。 某些常见的可变函数包括 RAND()、 NOW()、 TODAY() 和 OFFSET()。 如果活动工作簿包含未保存的更

13、改,第一个宏将显示如下消息: Sub TestForUnsavedChanges() If ActiveWorkbook.Saved = False Then MsgBox “This workbook contains unsaved changes.“ End If End Sub 下一个宏将关闭包含示例代码的工作簿并放弃对工作簿所做的所有更改: Sub CloseWithoutChanges() ThisWorkbook.Saved = True ThisWorkbook.Close End Sub 下面的示例宏也将关闭工作簿并放弃更改: Sub CloseWithoutChanges(

14、) ThisWorkbook.Close SaveChanges:=False End Sub 合并数据列 在 Excel 中,可以使用宏合并两个相邻列中的数据并在包含数据的右侧列中显 示结果,完全不需要手动设置公式。本节包含的示例宏就可以实现此功能。 Sub ConcatColumns() Do While ActiveCell “ 一直循环,直到活动单元格为空。 ActiveCell.Offset(0, 1).FormulaR1C1 = _ ActiveCell.Offset(0, -1) & “ “ & ActiveCell.Offset(0, 0) ActiveCell.Offset(

15、1, 0).Select Loop End Sub 要使用宏,请执行以下步骤: 1. 打开包含数据的工作簿。 2. 按 ALT+F11 组合键激活“Visual Basic 编辑器”。 3. 在“插入”菜单中,单击“模块”以插入一个模块。在模块的代码窗口中键 入上面的宏。 4. 单击“文件”菜单中的“关闭并返回到 Microsoft Excel”。 5. 选择包含要合并的数据的工作表。 6. 单击要合并的右侧数据列的第一个单元格。例如,如果单元格 A1:A100 和 B1:B100 包含数据,则单击单元格 B1。 7. 在“工具”菜单中,指向“宏”并单击“宏”。选择 ConcatColumns

16、 宏并单 击“运行”。 注意:可以用语句 ActiveCell.Offset(0, 1).Formula 替换语句 ActiveCell.Offset(0, 1).FormulaR1C1。 如果仅使用文本和数字 (不包含公式) , 那么两个语句的效果相同。第一个语句末尾使用的 R1C1 表示第一行的第一列, 这是 Excel 帮助主题中大多数示例使用的形式。 数组中的总行数和总列数 在 Excel 中,可以使用数组来计算和操作工作表中的数据,还可以使用宏将某 个范围内的单元格中的值存储到一个数组中。 本节中的示例宏代码将在一个矩形 单元格区域中添加一行和一列,以包含该区域中每一行和每一列中的单元格总 数。 具体的步骤是, 代码从活动工作表上活动单元格周围的当前单元格区域中读取数 据。宏将这些数据存储在一个数组中,计算每一行和每一列中的单元格总数,然 后将输出显示在工作表中。数组的大小由当前区域中的单元格数量决定。 注意: 此宏不会在工作表中添加任何公式,因此如果该范围内的单

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号