第1个回答 2010-07-12
在VB中要想调用Excel,需要打开VB编程环境“工程”菜单中的“引用”项目,并选取项目中的“Microsoft Excel 11.0 object library”项。由于你的Excel版本不同,所以这个选项的版本号也是不同的。
因为EXCEL是以层次结构组织对象的,其对象模型中含有许多不同的对象元素。
第一层:Application对象,即Excel本身;
第二层:workbooks对象集,指Excel的工作簿文件;
第三层:worksheets对象集,表示的是Excel的一个工作表;
第四层:Cells和Range对象,指向Excel工作表中的单元格。
新建立一个VB的工程,先放一个button,名称为Excel_Out。先定义好各层:
Dim xlapp As Excel.Application 'Excel对象
Dim xlbook As Excel.Workbook '工作簿
Dim xlsheet As Excel.Worksheet '工作表
我们打算做的是:打开/新建一个excel,在其中对某工作表的一些单元格修改其值,然后另存为test.xls文件。
Private Sub Excel_Out_Click()
Dim i, j As Integer
Set xlapp = CreateObject("Excel.Application") '创建EXCEL对象
'Set xlbook = xlapp.Workbooks.Open(App.Path & "\test.xls") '打开已经存在的test.xls工件簿文件
Set xlbook = xlapp.Workbooks.Add '新建EXCEL工件簿文件
'xlbook.RunAutoMacros (xlAutoOpen) '运行EXCEL启动宏
'xlbook.RunAutoMacros (xlAutoClose) '运行EXCEL关闭宏
xlapp.Visible = True '设置EXCEL对象可见(或不可见)
Set xlsheet = xlbook.Worksheets(1) '设置活动工作表''
''~~~当前工作簿的第一页,这里也可以换成“表名”
'下面就是简单的在一些单元格内写入数字
For i = 7 To 15
For j = 1 To 10
xlsheet.Cells(i, j) = j '当前工作簿第一页的第I行第J列
Next j
Next i
With xlsheet '设置边框为是实线
.Range(.Cells(7, 1), .Cells(28, 29)).Borders.LineStyle = xlContinuous
End With
没有贴完,希望对你有用。
第3个回答 推荐于2017-09-15
代码及注释如下:
Sub main()
f = Dir(ThisWorkbook.Path & "\*.xlsx")'搜索本文件下的所有xlsx格式文件(由于一般带VBA的文件不能保存为xlsx格式,故无需去判断,是否打开的是本文件)
Do While f <> ""
Workbooks.Open (ThisWorkbook.Path & "\" & f)'依次打开搜索到的文件
Workbooks(f).Sheets(1).Row(3).Copy Sheets(1).Range("A" & Range("A65536").End(3).Row + 1)'将打开的文件第3行复制到本文件最后一个非空行的下一行中
Workbooks(f).Close'关闭文件
f = Dir'赋值下一个文件名给f
Loop'继续循环
End Sub