VBA学习笔记之工作表

Sub 遍历sheets下的所有对象()
For Each shs In Sheets
    k = k + 1
    Cells(k, 1) = shs.Name
Next
End Sub

Sub 遍历worksheets下的所能对象()
For Each shs In Worksheets
    k = k + 1
    Cells(k, 2) = shs.Name
Next
End Sub

两段代码的区别在于一个是sheets下的所有对象,一个是worksheets下的所有工作表对象

判断工作表存在与否:

Sub 工作表存在与否()
Dim sn$
For Each sht In Sheets
    sn = sht.Name
    If sn = "我的工作表" Then
        MsgBox "存在"
        Exit Sub
    End If
Next
    MsgBox "不存在"
End Sub

Sub 工作表存在与否1()
Dim sn$
For i = 1 To Sheets.Count
        a = Sheets(i).Name
    If Sheets(i).Name = "我的工作表" Then
        MsgBox "存在"
        Exit Sub
    End If
Next
     MsgBox "不存在"
End Sub

添加工作表的方法:

‘ Sheets.Add 方法
‘ 表达式.Add(Before, After, Count, Type)
‘ XlSheetType 常量之一:
‘ xlWorksheet 工作表
‘ xlChart 图表
‘ xlExcel4MacroSheet 宏表
‘ xlExcel4IntlMacroSheet 对话框
‘ 默认值为 xlWorksheet。

Sub 新建sheets()
‘Sheets.Add
‘Sheets.Add Sheets("abc")‘在abc工作表前面添加
‘Sheets.Add , Sheets("abc")‘在abc工作表后面添加
‘Sheets.Add after:=Sheets("abc")‘同上
‘Sheets.Add Count:=2‘新建两个工作表
‘Sheets.Add , , 2‘同上
Sheets.Add , , , xlChart‘新建图表
End Sub

以上格式都可以新建工作表,注意新建的工作表位置有所不同

‘如果想批量新建工作表,可以结果循环来制作
Sub 新建1到12月份的工作表()
Dim j%
For j = 12 To 1 Step -1‘因为默认添加的工作表是在当前工作表的前面
    Sheets.Add.Name = j & "月"
Next
End Sub

‘删除工作表
Sub 删除sheet()
On Error Resume Next
Application.DisplayAlerts = False‘去除删除时的警告提示
Dim i%
For i = 1 To 12
    Sheets(i & "月").Delete
Next
Application.DisplayAlerts = True‘删除完成后恢复警告提示
End Sub

  

‘表达式.Move(Before, After)
‘表达式.copy(Before, After)

Sub 移动()
Sheet1.Move , Sheet3
End Sub

Sub 复制()
Sheet1.Copy Sheets(Sheets.Count)
End Sub

Sub 实例()
Dim i%, sth As Worksheet
For i = 1 To 12
    Set sth = Sheets.Add
          sth.Move after:=Sheets(Sheets.Count)
          sth.Name = i & "月"
Next
End Sub

重点来了:拆分工作簿

把当前工作簿下的所有工作表依次拆分并存储为不同的工作簿,名字分别为之前的工作表名

重点运用COPY的跨工作簿特性,用到工作簿的SaveAs方法

给出代码

Sub 拆分工作簿()
Dim wb As Workbook, k
k = 0
For Each sh In ThisWorkbook.Sheets
Application.DisplayAlerts = False
    Set wb = Workbooks.Add
    k = k + 1
    ThisWorkbook.Sheets(k).Copy wb.Sheets(1)
    Path = ThisWorkbook.Path & "\" & wb.Sheets(1).Name & ".xlsx"
    wb.SaveAs Path
    wb.Close
Next
Application.DisplayAlerts = True
End Sub

  

 PS: Workbooks(1).Sheets(k).Copy Workbooks(2).Sheets(1)把当前工作簿下工作表复制给新建的工作簿下sheets1的前面(即跨工作簿复制)

 PS: SaveAs后面跟完整的路径

时间: 2024-08-14 05:09:02

VBA学习笔记之工作表的相关文章

VBA学习笔记之工作簿

Workbook工作簿的常用功能: 1. 新建工作簿 Dim wb As Workbook Application.SheetsInNewWorkbook = 1     '设置初始工作簿中的工作表数 Set wb = Application.WorkBooks.Add wb.Worksheets(1).name = "表1"                '给第一个工作表设置名称 Application.SheetsInNewWorkbook = 3 2.用Excel对话框打开Exc

VBA学习笔记之VBA学习思路

进阶的知识点 1. SQL查询语句和ADO2. 正则表达式和网抓3. 窗体与控件4. API 类模块 等等 作者:SOROSay链接:https://www.zhihu.com/question/26078625/answer/132542043来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 1小时 熟悉数据类型.变量.常量和运算符 1.了解VBA有哪些数据类型 2.知道如何定义变量,了解public/dim/private定义变量时的区别 3.知道如何定义常量

Lua学习笔记(三):表的构造

构造器是创建和初始化表的表达式.表是Lua特有的功能强大的东西.最简单的构造函数是{},用来创建一个空表.可以直接初始化数组: 1 days = {"Sunday", "Monday", "Tuesday", "Wednesday", 2 "Thursday", "Friday", "Saturday"} Lua将“Sunday”初始化days[1](第一个元素索引为

sqlite学习笔记4:表的创建和删除

前面做了那么多不就是为了数据弄几张表么,接下来看看怎么新建表. 一 新建表 基本语法如下: CREATE TABLE database_name.table_name( column1 datatype PRIMARY KEY(one or more columns), column2 datatype, column3 datatype, ..... columnN datatype, ); 其中database_name为你的数据库名,table_name当然是表名啦,columnN为列明,

[Spring MVC]学习笔记--表单标签的使用

github例子地址: https://github.com/lemonbar/spring-mvc-jsp 效果图 关于spring mvc的标签的讲解, 有一篇blog已经讲的很细了. http://haohaoxuexi.iteye.com/blog/1807330 官方文档地址: http://docs.spring.io/spring/docs/4.0.6.RELEASE/spring-framework-reference/htmlsingle/#view-jsp 而且我在上面的例子

VBA学习笔记之单元格

'单元格对象在VBA中一个非常基础,同时也很重要的. '它的表达方式也是非常的多样化. '---------------------------------------------------- 'Range 对象 '代表某一单元格.某一行.某一列.某一选定区域(该区域可包含一个或若干连续单元格区域),或者某一三维区域. 'Range ("文本型装单元格地址") 'range的常见写法 Sub rng() Range("a1").Select '单元格 Range(

EXCEL 2010学习笔记 —— 数据透视表

今天整理一下EXCEL2010 数据透视表的课程笔记,数据透视表可以对多组数据进行统计和整理,是一种基本的数据可视化工具. 记录6个方面的总结: 1.创建数据透视表 2.更改数据透视表的汇总方式 3.更改数据透视表的组合 4.汇总多列数据,进行数据的分别统计 5.在透视表中利用公式进行计算 6.利用筛选字段创建多个工作表 1.创建数据透视表 从基本的操作层面来说:在获得了数据源之后,可以通过简单的插入功能和拖动命令生成一份数据透视表.创建一个新表格的时候,首先要确定最后的表格的行,列分别记录什么

【VBA】获取当前工作表的用户名

如何使用VBA获取当前工作表的用户名呢?请看如下代码: Sub 获取当前工作表的用户名() MsgBox "当前工作表的用户名为:" & Application.UserName End Sub 点击运行程序后,效果如下: 点击下载附件

VBA学习笔记之粘贴方法

Option Explicit 'Worksheet.Paste 方法 '将"剪贴板"中的内容粘贴到工作表上. '表达式.Paste(Destination, Link) '表达式 一个代表 Worksheet 对象的变量. Sub 粘贴() Range("B1:B6").Copy Range("c9") '这一句等于下面两句,但下面两句也有用处 Range("B1:B6").Copy '复制区域无公式 Sheet1.Past