在使用 Visual Basic 进行 Excel 文件操作时,首先需要引用Microsoft Excel XX.X Object Library。该引用位于开发环境的Project菜单中,通常为倒数第四项。添加此引用后,即可在代码中使用 Excel 对象模型中的各类对象,如应用程序、工作簿、工作表和单元格范围等。
接下来可以声明所需的对象变量。常见的包括 Excel 应用程序对象(Application)、工作簿对象(Workbook)、工作表对象(Worksheet),以及单元格区域对象(Range)。具体声明方式如下:
vb
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim St As Excel.Worksheet
在实际操作中,首先创建一个 Excel 应用程序实例,并打开指定路径下的工作簿文件。例如,以下代码用于打开位于 C 盘根目录下的123.xls文件,并以只读模式加载:
vb
Set xlApp = New Excel.Application
Set xlBook = xlApp.Workbooks.Open(C:123.xls, , True)
xlApp.Visible = False
将 `Visible` 属性设置为 `False` 表示不显示 Excel 界面,适合后台处理数据。随后,指定要操作的工作表,例如名为Sheet1的工作表,并将其赋值给已声明的 `St` 变量:
vb
Set St = xlBook.Worksheets(Sheet1)
此时,可以通过访问 `Cells` 属性来读取或写入特定单元格的数据。例如,将 A1 单元格的内容赋值给窗体上的 `Text1` 文本框:
vb
Text1.Text = St.Cells(1, 1)
完成数据读取或其他操作后,应关闭工作簿而不保存更改(通过传入 `False` 参数),并释放对象引用以释放系统资源:
vb
xlBook.Close False
Set xlApp = Nothing
以下是另一段经过测试成功的完整代码示例,展示了如何创建新的 Excel 工作簿并在其中写入数据:
vb
Dim xlapp As Excel.Application
Dim xlbook As Excel.Workbook
Dim xlsheet As Excel.Worksheet
Dim xlrange As Excel.Range
Private Sub Command1_Click()
Set xlapp = CreateObject(Excel.Application)
Set xlbook = xlapp.Workbooks.Add
xlapp.Visible = True
xlbook.Sheets(1).Range(A1) = 新建成功
xlbook.SaveAs App.Path & 测试.xls
xlbook.Close
End Sub
上述代码通过 `CreateObject` 方法动态创建 Excel 应用程序实例,添加一个新的空白工作簿,并将字符串新建成功写入第一个工作表的 A1 单元格,然后将其保存至程序所在目录下,文件名为测试.xls。
此外,VB 自带的示例程序VisData也提供了对文本文件和 Excel 文件进行操作的详细演示,可供学习参考。该示例涵盖了从文件读取、数据展示到写入保存的完整流程,具有较高的实用价值。
还有一种常见的操作方式是基于模板文件生成新文件。具体做法是先复制一个现有的 Excel 模板文件(.xlt 或 .xls),再用 Excel 对象打开该副本并进行修改。实现步骤如下:
首先确保已引用Microsoft Excel X.0 Object Library,然后声明所需对象:
vb
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlsheet As Excel.Worksheet
接着使用 `FileCopy` 命令将模板文件复制为临时文件:
vb
FileCopy App.Path & pf.xlt, App.Path & mp.xls
定义目标文件路径,并创建 Excel 应用程序实例:
vb
FileName = App.Path & mp.xls
Set xlApp = CreateObject(Excel.Application)
Set xlBook = xlApp.Workbooks.Open(FileName)
xlApp.Visible = True
将可见性设为 `True` 可让用户看到操作过程。然后获取指定工作表(如sheet1)并对其单元格进行赋值:
vb
Set xlsheet = xlBook.Sheets(sheet1)
With xlsheet
.Cells(1, 1) = 变量
End With
此处的变量可替换为任意需要写入的数据内容。整个流程实现了从模板复制、文件打开到数据填充的自动化处理,适用于报表生成、数据导出等场景。


