分享

VB 调用 Excel 9.0 命令

 虹乡青莲 2010-12-26
从"工程"菜单中选择"引用"栏;选择Microsoft Excel 9.0 Object Library(Excel2000),然后选择"确定"。表示在工程中要引用Excel类型库。 


Dim xlApp As Excel.Application 
Dim xlBook As Excel.WorkBook 
Dim xlSheet As Excel.Worksheet 

Set xlApp = CreateObject("Excel.Application") '创建Excel对象 
Set xlBook = xlApp.Workbooks.Open("文件名") '打开已经存在的Excel工件簿文件 
xlApp.Visible = True '设置Excel对象可见(或不可见) 
Set xlSheet = xlBook.Worksheets("表名") '设置活动工作表 
xlSheet.Cells(row, col) =值 '给单元格(row,col)赋值 
xlSheet.PrintOut '打印工作表 
xlBook.Close (True) '关闭工作簿 
xlApp.Quit '结束Excel对象 
Set xlApp = Nothing '释放xlApp对象 
xlBook.RunAutoMacros (xlAutoOpen) '运行Excel启动宏 
xlBook.RunAutoMacros (xlAutoClose) '运行Excel关闭宏 
----------------------------
宏代码:
"bb.xls"中打开Visual Basic编辑器,在工程窗口中点鼠标键选择插入模块,在模块中输入入下程序存盘: 
Sub auto_open() 
 Open "d:\Excel.bz" For Output As #1 '写标志文件 
 Close #1 
End Sub 
Sub auto_close() 
 Kill "d:\Excel.bz" '删除标志文件 
End Sub 
----------------------
60.4.111.*

4楼

___________________
常用语法
xlsheet.Range("A1:I1").Select '选中A1至I1 
 xlapp.Selection.Merge '合并选中的 
 xlapp.Selection.HorizontalAlignment = xlCenter '水平居中 
 启动 Excel
Dim objExcel As Excel.Application
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True'设置EXCEL对象可见(或不可见)


创建有一个工作表的工作簿
Dim objWorkBook As Excel.WorkBook
objExcel.SheetsInNewWorkbook = 1
Set objWorkbook = objExcel.Workbooks.Add


打开已经存在的 EXCEL 工件簿文件
Set objWorkbook=objExcel.Workbooks.Open("文件名") 


设置活动工作表
Dim objSheet As Excel.Worksheet
Set objSheet = objExcel.Worksheets("表名")

给单元格(row,col)赋值
objSheet.Cells(row, col) =值


给合并的单元格赋值,如(A3:A9)
objSheet.Range("A3:A9") =值


运行 EXCEL 宏
objWorkbook.RunAutoMacros ("宏名")

插入一行
objSheet.Rows("1:1").Insert Shift:=xlDown

Range("C8").Select
Selection.EntireRow.Insert '在第8行插入

Range("C9").Select
Selection.EntireRow.Delete '删除第9行

range("a1:c3").copy'复制一块
range("a5").PasteSpecial'在第a5行处粘贴复制的块

xlSheet.Range("C3").Value = "1"
 xlSheet.Cells(1, 1) = "test中文" '给单元格(row,col)赋值
 
 ' 画边框线
 xlSheet.Range(xlSheet.Cells(1, 1), xlSheet.Cells(2, 2)).Borders.LineStyle = xlContinuous
 
 xlSheet.Rows(1).HorizontalAlignment = xlVAlignCenter '左右居中
 xlSheet.Rows(1).VerticalAlignment = xlVAlignCenter '上下居中

 xlSheet.Cells(iStartRow + idx, 2).HorizontalAlignment = xlVAlignCenter '左右居中
 
 '设置指定列的宽度(单位:字符个数)
 xlApp.ActiveSheet.Columns(1).ColumnWidth = 15

 '设置指定行的高度(单位:磅)
 xlApp.ActiveSheet.Rows(1).RowHeight = 1 / 0.035
 
 '设置字体
 'xlApp.ActiveSheet.Cells(1, 1).Font.Name = "黑体"

 '设置字体大小
 xlApp.ActiveSheet.Cells(1, 1).Font.Size = 25
 
 '设置整列字体为粗体
 xlApp.ActiveSheet.Columns(1).Font.Bold = True
 
 'xlBook.SaveAs ("C:\Case1.xls")
 
 'xlSheet.PrintPreview (True)
 
 xlApp.Visible = True '显示文件
 
 'xlSheet.PrintOut '打印工作表
xlSheet.PageSetup.LeftHeader = "&""黑体,加粗""&36页眉"'设为36号字体,黑体,加粗'设置页眉

60.4.111.*

5楼

一个打印课程表的例子
Option Explicit
Dim i, l As Integer
Dim n, k As Integer '表格和内容的起始行
Dim yjhs As Integer '页间间隔行数
Dim weizhi As String
Dim xlApp As Excel.Application '定义Excel类
Dim xlBook As Excel.Workbook '定义工件簿类
Dim xlsheet As Excel.Worksheet '定义工作表类
Dim strSource, strDestination As String
Private Sub Command1_Click() '打开Excel过程

 wjcopy

 If Dir("d:\Excel.bz") = "" Then '判断Excel是否打开
 Set xlApp = CreateObject("Excel.Application") '创建Excel应用类
 xlApp.Visible = True '设置Excel可见
 Set xlBook = xlApp.Workbooks.Open(weizhi & "\临时文件.xls") '打开Excel工作簿
 Set xlsheet = xlBook.Worksheets(1) '打开Excel工作表
 xlsheet.Activate '激活工作表
 daochu '给单元格赋值
 xlBook.Save '保存文件
 xlBook.RunAutoMacros (xlAutoOpen) ' 运行Excel中的启动宏
 Else
 MsgBox ("Excel已打开")
 End If
End Sub


Private Sub Command3_Click()

 If Dir("d:\Excel.bz") <> "" Then '由VB关闭Excel
 xlBook.RunAutoMacros (xlAutoClose) '执行Excel关闭宏
 xlBook.Close (True) '关闭Excel工作簿
 xlApp.Quit '关闭Excel
 End If
 Set xlApp = Nothing '释放Excel对象
Unload Me
End
End Sub

Private Sub wjcopy()
On Error GoTo aa
strSource = weizhi & "\课程表.xls"
'RegisterFee.xls就是一个模版文件
strDestination = weizhi & "\临时文件.xls"
'Kill strDestination
FileCopy strSource, strDestination
Exit Sub
aa:
MsgBox "创建临时文件出错,可能是模板文件不存在,也可能是有其它程序占用引起的!"
End Sub
Private Sub daochu() '导入主表数据
If Cg1.FontName <> "" Then
xlApp.ActiveSheet.Cells(1, 1).Font.Name = Cg1.FontName
Else
xlApp.ActiveSheet.Cells(1, 1).Font.Name = "黑体"
End If
xlApp.ActiveSheet.Cells(1, 1).Font.Size = 18
xlsheet.Cells(1, 1) = Text1.Text
n = 0
k = 3
Dim l As Integer
l = 1
For n = 0 To 39
If n = 20 Then
k = k + 1
End If
If (n - 4) Mod 5 = 1 Then
k = k + 1
l = 1
End If
l = l + 1
xlsheet.Cells(k, l) = Combo1(n).Text
Next n

End Sub





Private Sub command2_Click()
 wjcopy

 If Dir("d:\Excel.bz") = "" Then '判断Excel是否打开
 Set xlApp = CreateObject("Excel.Application") '创建Excel应用类
 xlApp.Visible = False '设置Excel可见
 Set xlBook = xlApp.Workbooks.Open(weizhi & "\临时文件.xls") '打开Excel工作簿
 Set xlsheet = xlBook.Worksheets(1) '打开Excel工作表
 xlsheet.Activate '激活工作表
 daochu '给单元格赋值
 xlBook.Save '保存文件
 xlsheet.PrintOut '打印表格
 xlBook.RunAutoMacros (xlAutoOpen) ' 运行Excel中的启动宏
 Else
 MsgBox ("Excel已打开,如果现在没有打开,检查D:\excel.bz这个文件是不是存在,删除他。")
 End If
End Sub


Private Sub Form_Load()
weizhi = App.Path
'weizhi = "d:\"
Dim i As Integer
For i = 0 To 39
Combo1(i).AddItem ("语文")
Combo1(i).AddItem ("数学")
Combo1(i).AddItem ("英语")
Combo1(i).AddItem ("历史")
Combo1(i).AddItem ("地理")
Combo1(i).AddItem ("生物")
Combo1(i).AddItem ("社会")
Combo1(i).AddItem ("自然")
Combo1(i).AddItem ("政治")
Combo1(i).AddItem ("体育")
Combo1(i).AddItem ("物理")
Combo1(i).AddItem ("美术")
Combo1(i).AddItem ("音乐")
Combo1(i).AddItem ("自习")
Combo1(i).AddItem ("劳动")
Combo1(i).AddItem ("自由")
Combo1(i).AddItem ("活动")
Combo1(i).Text = "语文"
Next i





End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Unload Me
End
End Sub

Private Sub Image1_Click()
On Error GoTo aa:
Cg1.Flags = cdlCFScreenFonts Or cdlCFEffects
Cg1.ShowFont
If Cg1.FontSize > 24 Then Cg1.FontSize = 24
With Text1.Font
.Name = Cg1.FontName
.Size = Cg1.FontSize
.Bold = Cg1.FontBold
.Italic = Cg1.FontItalic
.Strikethrough = Cg1.FontStrikethru
.Underline = Cg1.FontUnderline
End With
xlApp.ActiveSheet.Cells(1, 1).Font.Name = Cg1.FontName
Exit Sub
aa:
End Sub

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多