VBA基础学习之1.13Excel对象

VBA基础学习之Excel对象

使用VBA进行编程时,用户将要处理的重要对象很少。下面是一些常见的对象 -

  • 应用程序对象
  • 工作簿对象
  • 工作表对象
  • 范围对象

1.13.1 应用程序对象
应用程序对象由以下部分组成 -

  • 应用程序范围的设置和选项
  • 返回顶级对象方法,比如ActiveCell,ActiveSheet等等。

示例:

'Example 1 :
Set xlapp = CreateObject("Excel.Sheet") 
xlapp.Application.Workbooks.Open "C:\test.xls"

'Example 2 :
Application.Windows("test.xls").Activate

'Example 3:
Application.ActiveCell.Font.Bold = True

1.13.2 工作簿对象
Workbook对象是Workbooks集合的成员,并包含当前在Microsoft Excel中打开的所有Workbook对象。

示例:

'Ex 1 : To close Workbooks
Workbooks.Close

'Ex 2 : To Add an Empty Work Book
Workbooks.Add

'Ex 3: To Open a Workbook
Workbooks.Open FileName:="Test.xls", ReadOnly:=True

'Ex : 4 - To Activate WorkBooks
Workbooks("Test.xls").Worksheets("Sheet1").Activate
Sub test()
Dim sht As Worksheet
Dim i As Integer

'创建shell对象
Set WshShell = CreateObject("WScript.Shell")
' 定义桌面路径
desktop = WshShell.SpecialFolders("Desktop")

For Each sht In Worksheets
    If sht.Name <> "部门" Then
        i = i + 1
        Range("a" & i) = sht.Name
    End If
Next

Dim fileName As String

fileName = "demo.xlsx"

' 关闭屏幕更新
Application.ScreenUpdating = False
' 关闭弹窗
Application.DisplayAlerts = False

' 新增工作簿
Workbooks.Add


ActiveWorkbook.Sheets(1).Range("a1") = "新建一个工作簿"
' 不保存在默认文件夹里用 saveas
ActiveWorkbook.SaveAs fileName:=desktop + "/" + fileName
ActiveWorkbook.Close


' 打开工作簿
Workbooks.Open fileName:=desktop + "/" + fileName
ActiveWorkbook.Sheets(1).Range("a2") = "打开操作了一下"
' 在哪里打开保存在哪里
ActiveWorkbook.Save
ActiveWorkbook.Close

' 恢复屏幕更新
Application.ScreenUpdating = True

' 恢复屏幕更新
Application.DisplayAlerts = True

End Sub

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


1.13.3 工作表对象
工作表对象是工作表集合的成员,并包含工作簿中的所有工作表对象。

示例:


'Ex 1 : To make it Invisible
Worksheets(1).Visible = False

'Ex 2 : To protect an WorkSheet
Worksheets("Sheet1").Protect password:=strPassword, scenarios:=True

在这里插入图片描述

在这里插入图片描述

# 删除
Sub test()

Sheets.Add Count:=100  '添加100个sheet

Excel.Application.DisplayAlerts = False '取消删除确认提示框

For i = 1 To 100 Step 1
    Sheets(1).Delete ' 循环删除第一张表
Next

Excel.Application.DisplayAlerts = True

End Sub

# 复制
Sub test()

For i = 1 To 10
    Sheets(1).Copy after:=Sheets(Sheets.Count) '创建副本
Next

End Sub

sheets 和 worksheets 的区别

表有多种分类 工作表,chart等
sheets 是 统称

worksheets 指 工作表

一般我们用的表都是worksheets, 所以和sheets一样,如果还有chart 等其他表格类型,将会有区别,比如sheets.count 和 worksheets.count 就会不一样

1.13.4 范围对象

Range对象表示单元格,行,列或包含一个或多个连续单元格块的单元格的选择。

示例:

'Ex 1 : To Put a value in the cell A5
Worksheets("Sheet1").Range("A5").Value = "5235"

'Ex 2 : To put a value in range of Cells
Worksheets("Sheet1").Range("A1:A4").Value = 5
Sub RangeDemo()
Dim i As Integer
Dim j As Integer

i = 11
j = 15

'单元格操作
' 选中a1,硬编码,不灵活
[a1].Select

' Cells(行, 列)
Cells(2, 1).Select
Cells(i, j).Select

' range(区域)
Range("a3").Select ' 单个单元格
Range("a1", "a5").Select ' 选择区域
Range("a6:a10").Select
Range("a" & i & ":a" & j).Select ' 支持变量

' 单元格偏移range("a1").Offset(往下偏移,往右偏移)
Range("a1").Offset(2, 3).Select

' 选中边界单元格
Range("a65536").End(xlUp).Select

row_cnt = Range("a65536").End(xlUp)
' MsgBox row_cnt

' 重新选区域
Range("a1").Resize(2, 3).Merge

' 选中整行
Range("a1").EntireRow.Select

' 复制单元格或者区域
Range("a1").Copy Range("b4")
Range("a1").EntireRow.Copy Range("a3") ' 整行copy目标点必须a列的某行,因为整行的个数一定,换一列不匹配
Range("a3:b4").Copy Range("c6")


End Sub
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值