Foxtable(狐表)用户栏目专家坐堂 → [分享]VB中对EXCEL的各种操作


  共有3671人关注过本帖树形打印复制链接

主题:[分享]VB中对EXCEL的各种操作

帅哥哟,离线,有人找我吗?
nblwar
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:977 积分:6800 威望:0 精华:1 注册:2012/8/7 22:03:00
[分享]VB中对EXCEL的各种操作  发帖心情 Post By:2013/8/26 17:25:00 [只看该作者]

网络上搜索的,

全面控制 Excel

首先创建 Excel 对象,使用ComObj

Dim ExcelID As Excel.Application

Set ExcelID As new Excel.Application

1) 显示当前窗口

ExcelID.Visible = True

2) 更改 Excel 标题栏

ExcelID.Caption = "应用程序调用 Microsoft Excel"

3) 添加新工作簿

ExcelID.WorkBooks.Add

4) 打开已存在的工作簿

ExcelID.WorkBooks.Open( "C:\Excel\Demo.xls" )

5) 设置第2个工作表为活动工作表

ExcelID.WorkSheets[2].Activate

或 ExcelID.WorkSheets[ "Sheet2" ].Activate

6) 给单元格赋值

ExcelID.Cells[1,4].Value = "第一行第四列"

7) 设置指定列的宽度(单位:字符个数),以第一列为例

ExcelID.ActiveSheet.Columns[1].ColumnsWidth = 5

8) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例

ExcelID.ActiveSheet.Rows[2].RowHeight = 1/0.035 // 1厘米

9) 在第8行之前插入分页符

ExcelID.WorkSheets[1].Rows[8].PageBreak = 1

10) 在第8列之前删除分页符

ExcelID.ActiveSheet.Columns[4].PageBreak = 0

11) 指定边框线宽度

ExcelID.ActiveSheet.Range[ "B3:D4" ].Borders[2].Weight = 3

1-左 2-右 3-顶 4-底 5-斜( \ ) 6-斜( / )

12) 清除第一行第四列单元格公式

ExcelID.ActiveSheet.Cells[1,4].ClearContents

13) 设置第一行字体属性

ExcelID.ActiveSheet.Rows[1].Font.Name = "隶书"

ExcelID.ActiveSheet.Rows[1].Font.Color = clBlue

ExcelID.ActiveSheet.Rows[1].Font.Bold = True

ExcelID.ActiveSheet.Rows[1].Font.UnderLine = True

14) 进行页面设置

a.页眉

ExcelID.ActiveSheet.PageSetup.CenterHeader = "报表演示"

b.页脚

ExcelID.ActiveSheet.PageSetup.CenterFooter = "第&P页"

c.页眉到顶端边距2cm

ExcelID.ActiveSheet.PageSetup.HeaderMargin = 2/0.035

d.页脚到底端边距3cm

ExcelID.ActiveSheet.PageSetup.HeaderMargin = 3/0.035

e.顶边距2cm

ExcelID.ActiveSheet.PageSetup.TopMargin = 2/0.035

f.底边距2cm

ExcelID.ActiveSheet.PageSetup.BottomMargin = 2/0.035

g.左边距2cm

ExcelID.ActiveSheet.PageSetup.LeftMargin = 2/0.035

h.右边距2cm

ExcelID.ActiveSheet.PageSetup.RightMargin = 2/0.035

i.页面水平居中

ExcelID.ActiveSheet.PageSetup.CenterHorizontally = 2/0.035

j.页面垂直居中

ExcelID.ActiveSheet.PageSetup.CenterVertically = 2/0.035

k.打印单元格网线

ExcelID.ActiveSheet.PageSetup.PrintGridLines = True

15) 拷贝操作

a.拷贝整个工作表

ExcelID.ActiveSheet.Used.Range.Copy

b.拷贝指定区域

ExcelID.ActiveSheet.Range[ "A1:E2" ].Copy

c.从A1位置开始粘贴

ExcelID.ActiveSheet.Range.[ "A1" ].PasteSpecial

d.从文件尾部开始粘贴

ExcelID.ActiveSheet.Range.PasteSpecial

16) 插入一行或一列

a. ExcelID.ActiveSheet.Rows[2].Insert

b. ExcelID.ActiveSheet.Columns[1].Insert

17) 删除一行或一列

a. ExcelID.ActiveSheet.Rows[2].Delete

b. ExcelID.ActiveSheet.Columns[1].Delete

18) 打印预览工作表

ExcelID.ActiveSheet.PrintPreview

19) 打印输出工作表

ExcelID.ActiveSheet.PrintOut

20) 工作表保存

If not ExcelID.ActiveWorkBook.Saved Then

ExcelID.ActiveSheet.PrintPreview

End If

21) 工作表另存为

ExcelID.SaveAs( "C:\Excel\Demo1.xls" )

22) 放弃存盘

ExcelID.ActiveWorkBook.Saved = True

23) 关闭工作簿

ExcelID.WorkBooks.Close

24) 退出 Excel

ExcelID.Quit

25) 设置工作表密码

ExcelID.ActiveSheet.Protect "123", DrawingObjects:=True, Contents:=True, Scenarios:=True

26) EXCEL的显示方式为最大化

ExcelID.Application.WindowState = xlMaximized

27) 工作薄显示方式为最大化

ExcelID.ActiveWindow.WindowState = xlMaximized

28) 设置打开默认工作薄数量

ExcelID.SheetsInNewWorkbook = 3

29) 关闭时是否提示保存(True 保存,False 不保存)

ExcelID.DisplayAlerts = False

30) 设置拆分窗口,及固定行位置

ExcelID.ActiveWindow.SplitRow = 1

ExcelID.ActiveWindow.FreezePanes = True

31) 设置打印时固定打印内容

ExcelID.ActiveSheet.PageSetup.PrintTitleRows = "$1:$1"

32) 设置打印标题

ExcelID.ActiveSheet.PageSetup.PrintTitleColumns = ""

33) 设置显示方式(分页方式显示)

ExcelID.ActiveWindow.View = xlPageBreakPreview

34) 设置显示比例

ExcelID.ActiveWindow.Zoom = 100

35) 让Excel 响应 DDE 请求

Ex.Application.IgnoreRemoteRequests = False

-------------------------------------------------------------------------------------------------------------

用VB操作EXCEL

 

Private Sub Command3_Click()

    On Error GoTo err1

    Dim i As Long

    Dim j As Long

    Dim objExl As Excel.Application    '声明对象变量

    Me.MousePointer = 11    '改变鼠标样式

    Set objExl = New Excel.Application    '初始化对象变量

    objExl.SheetsInNewWorkbook = 1    '将新建的工作薄数量设为1

    objExl.Workbooks.Add    '增加一个工作薄

    objExl.Sheets(1).Name = "book2"    '修改工作薄名称

    objExl.Sheets("book2").Select    '选中工作薄<book2>

    For i = 1 To 50    '循环写入数据

        For j = 1 To 5

            If i = 1 Then

                objExl.Selection.NumberFormatLocal = "@"    '设置格式为文本

                objExl.Cells(i, j) = " E " & i & j

            Else

                objExl.Cells(i, j) = i & j

            End If

        Next

    Next

 

    objExl.Rows("1:1").Select    '选中第一行

    objExl.Selection.Font.Bold = True    '设为粗体

    objExl.Selection.Font.Size = 24    '设置字体大小

    objExl.Cells.EntireColumn.AutoFit    '自动调整列宽

    objExl.ActiveWindow.SplitRow = 1    '拆分第一行

    objExl.ActiveWindow.SplitColumn = 7  '拆分前七列

    objExl.ActiveWindow.FreezePanes = True    '固定拆分

    objExl.ActiveSheet.PageSetup.PrintTitleRows = "$1:$1" '设置打印固定行

    objExl.ActiveSheet.PageSetup.PrintTitleColumns = ""    '打印标题

    objExl.ActiveSheet.PageSetup.RightFooter = "打印时间: " & Format(Now, "yyyy年mm月dd日 hh:MM:ss")

    objExl.ActiveWindow.View = xlPageBreakPreview    '设置显示方式

    objExl.ActiveWindow.Zoom = 100    '设置显示大小

    objExl.ActiveSheet.Protect "123", DrawingObjects:=True,Contents:=True, Scenarios:=True

    objExl.Application.IgnoreRemoteRequests = False

    objExl.Visible = True    '使EXCEL可见

    objExl.Application.WindowState = xlMaximized    'EXCEL的显示方式为最大化

    objExl.ActiveWindow.WindowState = xlMaximized    '工作薄显示方式为最大化

    objExl.SheetsInNewWorkbook = 3    '将默认新工作薄数量改回3个

    Set objExl = Nothing    '清除对象

    Me.MousePointer = 0    '修改鼠标

    Exit Sub

err1:

    objExl.SheetsInNewWorkbook = 3

    objExl.DisplayAlerts = False    '关闭时不提示保存

    objExl.Quit    '关闭EXCEL

    objExl.DisplayAlerts = True    '关闭时提示保存

    Set objExl = Nothing

    Me.MousePointer = 0

End Sub

 

[此贴子已经被作者于2013-8-26 17:26:53编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/8/26 17:58:00 [只看该作者]

好,顶上。

 回到顶部