使用 Excel 2003 工作表的 VBA 示例 -金宇
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> 综合其它


使用 Excel 2003 工作表的 VBA 示例

发表时间:2008/8/4 8:24:06 评论(0) 浏览(6682)  评论 | 加入收藏 | 复制
   
摘 要:使用 Excel 2003 工作表的 VBA 示例 
正 文:


发布日期 : 11/4/2004 | 更新日期 : 11/4/2004
Frank Rice

Microsoft Corporation

适用范围:

Microsoft Office Excel 2003

摘要:寻找能够为 Excel 工作表增加额外功能的宏。只需稍加练习,您就可以扩展这些程序,使其适合您自己的应用程序。

本页内容
 引言
 导出带有逗号和引号分隔符的文本文件
 计算包含公式、文本或数字的单元格数量
 使用 Saved 属性确定工作簿是否已发生更改
 合并数据列
 数组中的总行数和总列数
 结论


引言
本文介绍几个 Microsoft Visual Basic for Applications (VBA) 宏,您可以使用这些宏为 Microsoft Office Excel 2003 工作簿和工作表增加额外的功能。这些宏将为您的应用程序提供新的功能或增强现有的功能。阅读示例的同时,您应该寻找扩展这些宏的方法,以适合您自己的情况。

 返回页首

导出带有逗号和引号分隔符的文本文件
Excel 没有自动将数据导出为文本文件的菜单命令,因此导出的文本文件同时带有逗号和引号分隔符。例如,没有命令能自动创建包含以下内容的文本文件:

"Text1","Text2","Text3"
但是,您可以使用 VBA 宏在 Excel 中创建该功能。这种文件格式是在诸如 Microsoft Office Access 2003 和 Microsoft Office Word 2003 之类的应用程序中导入文本数据时常见的格式。

您可以在如下所示的 VBA 宏中使用 Print 语句,导出同时带有逗号和引号分隔符的文本文件。要使该程序正常运行,必须在运行该程序之前选择包含数据的单元格。

使用以下示例之前,请执行以下步骤:

打开一个新工作簿。

在“工具”菜单中,指向“宏”,然后单击“Visual Basic 编辑器”(或者简单地按下 ALT+F11 组合键)。在“Visual Basic 编辑器”中,单击“插入”菜单,然后单击“模块”。

将以下示例代码键入或粘贴到模块中:

Sub QuoteCommaExport()
Dim DestFile As String
Dim FileNum As Integer
Dim ColumnCount As Integer
Dim RowCount As Integer

' 提示用户指定目标文件名。
DestFile = InputBox("Enter the destination filename" & _
Chr(10) & "(with complete path and extension):", _
"Quote-Comma Exporter")
' 获取下一个可用的文件句柄编号。
FileNum = FreeFile()

' 关闭错误检查功能。
On Error Resume Next

' 尝试打开目标文件以供输出。
Open DestFile For Output As #FileNum
' 如果出现错误,则报告错误并结束程序。
If Err <> 0 Then
MsgBox "Cannot open filename " & DestFile
End
End If

' 打开错误检查功能。
On Error GoTo 0

' 循环选择的每一行。
For RowCount = 1 To Selection.Rows.Count
' 循环选择的每一列。
For ColumnCount = 1 To Selection.Columns.Count

' 将当前单元格中的文本写入到文件中,文本用引号括起来。
Print #FileNum, """" & Selection.Cells(RowCount, _
ColumnCount).Text & """";
' 检查单元格是否位于最后一列。
If ColumnCount = Selection.Columns.Count Then
' 如果是,则写入一个空行。
Print #FileNum,
Else
' 否则,则写入一个逗号。
Print #FileNum, ",";
End If
' 开始 ColumnCount 循环的下一个迭代。
Next ColumnCount
' 开始 RowCount 循环的下一个迭代。
Next RowCount

' 关闭目标文件。
Close #FileNum
End Sub
运行该宏之前,请选择要导出的数据,然后在“工具”菜单中指向“宏”并单击“宏”。

选择 QuoteCommaExport 宏,然后单击“运行”。

 返回页首

计算包含公式、文本或数字的单元格数量
在 Excel 中,您可以对包含公式、文本或数字的工作表中的单元格数量进行计算,方法是使用“定位条件”对话框选择单元格,然后运行计算所选单元格数量的宏。例如,当您需要设置表格以确定合计列的每一行是否都包含公式而不用手动检查每一行时,此方法可能很有用。

选择单元格
要选择公式、文本或数字,请执行以下步骤:

在“编辑”菜单中,单击“定位”,然后单击“定位条件”。

在“定位条件”对话框中,要选择所有公式,请单击“公式”并确保选中“数字”、“文本”、“逻辑值”以及“错误”复选框。要选择文本,请选择“常量”选项,然后仅单击并选中“文本”复选框。要选择数字,请选择“常量”选项,然后仅单击并选中“数字”复选框。

计算所选单元格数量的 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 属性确定工作簿是否已发生更改
可以通过检查工作簿的 Saved 属性来确定工作簿是否已发生更改。根据工作簿是否发生了更改,Saved 属性将返回 True 或 False 值。

注意:用户除了可以通过“事件”设置 Saved 属性外,还可以通过代码将其设置为 True 或 False。本节包含的示例宏说明了如何在这两种情况下使用 S


Access软件网交流QQ群(群号:198465573)
 
 相关文章
Excel表中数据追加到Access表  【李制樯  2013/5/30】
EXCEL单元格填充后自动添加时间批注代码  【(麥田)转载  2013/6/13】
快速开发平台--#429 ExportToExcel() Acti...  【麥田  2013/6/21】
解决网友Excel生成随机数的问题  【杏林求真  2013/6/22】
【VBA系统教程七】第五课 利用VBA设置Excel工作表使用权限  【nivenm  2013/7/29】
常见问答
技术分类
相关资源
文章搜索
关于作者

金宇

文章分类

文章存档

友情链接