如何用VB实现Excel文件的自动合并
简单而实用的合并Excel文件的函数,能够将多个XLS文件中指定数量的工作表自动合并到一个XLS文件里。当然,如果只是数据合并,则使用ADO就可以实现,但如果要保留表格格式,则恐怕只能使用俺的方法了。
一、函数代码:
Option Explicit
'* ************************************************************** *
'* 函数名称:MergeXlsFile
'* 功能:自动合并指定路径下的所有XLS文件到一个文件中
'* 参数说明:strPath:需要合并的XLS文件所在路径。
'* SheetCount:需要合并的单个工作簿中工作表数量
'* 作者:lyserver
'* 联系方式:http://blog.csdn.net/lyserver
'* ************************************************************** *
Public Function MergeXlsFile(ByVal strPath As String, Optional ByVal SheetCount As Byte = 1) As Boolean
Dim i As Integer
Dim strSrcFile As String
Dim nRows As Long, nCols As Long, nSheets As Byte, nNewRows() As Integer
Dim xlApp As Object, xlSrcBook As Object, xlNewBook As Object, xlSheet As Object, xlRange As Object
On Error Resume Next
If Right(strPath, 1) <> "\" Then strPath = strPath & "\"
'如果需要合并文件中的工作表数量小于1则退出
If SheetCount < 1 Then Exit Function
'删除掉该路径下原来的合并文件
If Dir(strPath & "合并后的文件.xls") <> "" Then Kill strPath & "合并后的文件.xls"
'获得第1个XLS文件
strSrcFile = Dir(strPath & "*.xls")
'如果文件不存在则退出
If Len(strSrcFile) = 0 Then Exit Function
'创建一个Excel实例
Set xlApp = CreateObject("Excel.Application")
'新建一个工作簿
Set xlNewBook = xlApp.Workbooks.Add
'调整新建工作簿里工作表的数量
ReDim nNewRows(1 To SheetCount)
For i = 1 To SheetCount - xlNewBook.Sheets.Count
xlNewBook.Sheets.Add , xlNewBook.Sheets(xlNewBook.Sheets.Count)
Next
'循环查找当前路径下的所有XLS文件
Do
'打开找到的XLS文件
Set xlSrcBook = xlApp.Workbooks.Open(strPath & strSrcFile)
'循环复制源XLS文件里的工作表
相关文档:
传统方法是遍历一遍
如果listbox 项目过多
明显速度不行
好方法是通过sendmessge发消息给listbox让他把选中项目直接传到参数数组中
You can use the SendMessage() API function instead.
As
you probably know, this function lets you send a message to one or more
windows. The declaration statement conforms ......
最简单的方法是使用filesystemobject对象。而它并非VB内置对象,
需引用才可以使用。
1.filesystemObject对象引用
“工程/引用/microsoft scription Runtime”
在对象浏览器窗口中选“scripting”模块,看到增了许多对象,
drive filesystemobject textstream &nbs ......
VB与Matlab混合编程有多种方式,这里讨论Matlab将M文件编译成com组件共VB调用的方式。
Matlab版本:Matlab 7.7. 0.471 R2008b
VB版本:VB 6.0 & VB 2008
首先写好完成某个功能的m文件,比如在m文件中写入如下函数
function [returns,stderr]=GetReturns(prices)
returns=price2ret(prices)&nbs ......