excel根据数据批量创建并重命名工作表

news2024/9/23 5:22:48

需求

根据一列数据,批量创建并重命名工作表

在这里插入图片描述

做法

1. 右键该sheet,选择查看代码

在这里插入图片描述

2. 输入VBA代码

正向创建

Sub create_sheets_by_col()
    Dim num%
    '  定义为integer*
    num = Application.WorksheetFunction.CountA(Sheet1.Range("A:A"))
    '  num是非空单元格数
    
    For i = 1 To num
        Sheets.Add after:=ActiveSheet
        Sheets(i + 1).Select
        Sheets(i + 1).Name = Sheet1.Cells(i, 1)
    Next i
End Sub

在这里插入图片描述

解释
Sub create_sheets_by_col()
  • Sub 关键字用于声明一个子程序或宏。create_sheets_by_col 是子程序的名字,这个名字表明了宏的目的,即通过某一列的数据来创建新的工作表。
    Dim num%
  • Dim 关键字用于声明一个变量。num% 声明了一个名为 num 的整型变量(Integer)。在VBA中,变量类型是通过在变量名后面加上一个类型声明字符来指定的,% 表示整型。
    num = Application.WorksheetFunction.CountA(Sheet1.Range("A:A"))
  • 这行代码使用Excel的 WorksheetFunction 对象的 CountA 方法来计算 Sheet1 工作表中A列的非空单元格数量。Application.WorksheetFunction 是访问Excel工作表函数的方式,CountA 函数计算指定范围内的非空单元格数。Sheet1.Range("A:A") 指定了 Sheet1 工作表的A列。
    For i = 1 To num
  • 这行代码开始了一个 For 循环。循环变量 i 从1开始,一直增加到 num 的值。循环将重复执行下面的代码块,每次循环 i 的值都会增加1。
        Sheets.Add after:=ActiveSheet
  • 在循环体内,Sheets.Add after:=ActiveSheet 是一个方法调用,它会在当前活动的工作表之后添加一个新的工作表。ActiveSheet 是一个内置属性,代表当前选中的工作表。
        Sheets(i + 1).Select
  • Sheets(i + 1).Select 选择并激活新添加的工作表。因为新工作表是在当前活动工作表之后添加的,所以它的索引位置是 i + 1
        Sheets(i + 1).Name = Sheet1.Cells(i, 1)
  • 这行代码将新工作表的名称设置为 Sheet1 工作表中第 i 行第1列的单元格内容。这意味着每个新创建的工作表将以其对应的A列单元格内容命名。
    Next i
  • Next i 语句标志着 For 循环的结束。每次循环结束时,i 的值都会增加1,直到它等于 num,此时循环停止。
End Sub
  • End Sub 语句表示子程序的结束。这是宏定义的最后一行代码,它告诉VBA宏编辑器子程序的代码到此结束。

总体来说,这段代码的目的是遍历 Sheet1 工作表的A列,对于每个非空单元格,都会创建一个新的工作表,并将新工作表的名称设置为该单元格的值。这样,如果A列有5个非空单元格,那么就会创建5个新工作表,每个工作表的名称对应于A列中相应行的单元格内容。

效果

在这里插入图片描述

反向创建

Sub create_sheets_by_col_rev()
    Dim num%
    num = Application.WorksheetFunction.CountA(Sheet1.Range("A:A"))
    
    For i = 1 To num
        Sheets.Add
        Sheets(1).Name = Sheet1.Cells(i, 1)
        ' Sheet1=Sheets(i+1), sheet1随着新工作表的建立被往后挤,序列数随之增大
    Next i
End Sub

在这里插入图片描述

解释
Sub create_sheets_by_col_rev()
  • Sub 关键字用于声明一个子程序或宏。create_sheets_by_col_rev 是子程序的名字,这个名字表明了宏的目的是通过某一列的数据来创建新的工作表,并且可能有一些修改或优化(由“rev”后缀暗示)。
    Dim num%
  • Dim 关键字用于声明一个变量。num% 声明了一个名为 num 的整型变量(Integer)。
    num = Application.WorksheetFunction.CountA(Sheet1.Range("A:A"))
  • 这行代码使用Excel的 WorksheetFunction 对象的 CountA 方法来计算 Sheet1 工作表中A列的非空单元格数量。Application.WorksheetFunction 是访问Excel工作表函数的方式,CountA 函数计算指定范围内的非空单元格数。Sheet1.Range("A:A") 指定了 Sheet1 工作表的A列。
    For i = 1 To num
  • 这行代码开始了一个 For 循环。循环变量 i 从1开始,一直增加到 num 的值。循环将重复执行下面的代码块,每次循环 i 的值都会增加1。
        Sheets.Add
  • 在循环体内,Sheets.Add 是一个方法调用,它会在工作簿的末尾添加一个新的工作表。
        Sheets(1).Name = Sheet1.Cells(i, 1)
  • 这行代码将新添加的工作表(现在是工作簿中的第一个工作表,索引为1)的名称设置为 Sheet1 工作表中第 i 行第1列的单元格内容。这意味着每个新创建的工作表将以其对应的A列单元格内容命名。
    Next i
  • Next i 语句标志着 For 循环的结束。每次循环结束时,i 的值都会增加1,直到它等于 num,此时循环停止。
End Sub
  • End Sub 语句表示子程序的结束。这是宏定义的最后一行代码,它告诉VBA宏编辑器子程序的代码到此结束。

总体来说,这段代码的目的是遍历 Sheet1 工作表的A列,对于每个非空单元格,都会在工作簿的末尾创建一个新的工作表,并将新工作表的名称设置为该单元格的值。每次添加新工作表后,原有的工作表索引位置都会增加,因此新工作表始终是工作簿中的第一个工作表,其索引为1。

效果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1927062.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

unity宏编译版本

在写c程序的时候我们通常可以用不同的宏定义来控制不同版本的编译内容,最近有个需求就是根据需要编译一个完全体验版本,就想到了用vs的那套方法。经过研究发现unity也有类似的控制方法。 注意这里设置完后要点击右下的应用,我起先就没有设置…

Docker 安装ros 使用rviz 等等图形化程序

Docker 安装ros 使用rviz 等等图形化程序 ubuntu 版本与ros 发行版本对应 如何安装其它版本ros 此时考虑使用docker 易于维护 地址: https://hub.docker.com/r/osrf/ros 我主机是 ubuntu22.04 使用这个标签 melodic-desktop-full 1 clone 镜像到本机 docker pu…

云原生简单综合实验

需求:左边服务器搭建一个web服务,名字为www.rhce.com,目录/nfs/rhce为右边服务器共享的/rhce目录 搭建一个dns解析rhce.com域 右边开启autofs服务为左边服务器提供目录 第一步下载相关软件 左边服务器 [rootnode ~]# yum install nginx…

Vue 新指令 v-memo 案例精析与性能优化

v-memo 用于缓存组件的渲染结果。它通过指定依赖项来决定何时重新渲染组件,只有当依赖项的值发生变化时,组件才会重新渲染,从而提高性能。 使用场景:v-memo 适用于组件的渲染结果在依赖项不变的情况下不应该频繁更新的场景&#x…

Windows 虚拟机服务器项目部署

目录 一、部署JDK下载JDK安装JDK1.双击 jdk.exe 安装程序2.点击【下一步】3.默认安装位置,点击【下一步】4.等待提取安装程序5.默认安装位置,点击【下一步】6.等待安装7.安装成功,点击【关闭】 二、部署TomcatTomcat主要特点包括:…

抖音视频图文根据ID获得评论信息网站源码

抖音视频图文根据ID获得评论信息单页源码,id是视频的id,可以自定义第几条评论开始,不填默认为0,评论数量最大数量50,默认是20。 接口返回参数: "comments": 评论信息集合 { "uid": 评…

【Android面试八股文】请描述一下 android 的系统架构?

Android 是一个基于 Linux 的开源软件堆栈,针对多种不同设备类型打造。下图显示了 Android 平台的主要组件。 早期的Android架构如下图所示 官方网站最新的Android平台架构图,如下所示: Linux 内核 Android 平台的基础是 Linux 内核。例如,Android 运行时 (ART) 依赖…

重生奇迹MU 群战王牌

圣导师是重生奇迹MU游戏中八大职业之一,拥有风度翩翩、潇洒自如的形象和神一样的实力。无论是刷怪、PK、打boss还是混战,圣导师都表现出压制其他职业的强大气势。因此,这个职业在游戏中备受欢迎,人气非常高。 实力强大的二代隐藏…

<数据集>钢板缺陷检测数据集<目标检测>

数据集格式:VOCYOLO格式 图片数量:1986张 标注数量(xml文件个数):1986 标注数量(txt文件个数):1986 标注类别数:7 标注类别名称:[crescent gap, silk spot, water spot, weld line, oil spot, punchin…

代码检查规则语言CodeNavi中代码语句的节点和节点属性

本文分享至华为云社区《CodeNavi 中代码语句的节点和节点属性》。作者:Uncle_Tom 1. 前期回顾 《寻找适合编写静态分析规则的语言》 根据代码检查中的一些痛点,提出了希望寻找一种适合编写静态分析规则的语言。 可以满足用户对代码检查不断增加的各种需求…

电脑摄像头可以用手机的吗?虚拟摄像头如何下载安装使用?超详细解答

一、电脑摄像头是否可以用手机摄像头代替? 随着电子设备研究的不断发展,电脑与手机之间的连接与互动已经变得越来越便捷。那么,关于电脑摄像头是否可以用手机的问题,答案是肯定的。不过,这通常需要通过一些特定的软件…

CUDA编程 - clock 学习记录

clock 学习记录 一、完整代码二、核函数流程三、main 函数流程四、学习总结(共享内存的声明和使用):4.1、例子4.2、数据从全局内存复制到共享内存: 该程序利用CUDA并行计算能力,执行归约操作以找到每个块内的最小值&am…

PyTorch论文

2019-12 PyTorch: An Imperative Style, High-Performance Deep Learning Library 设计迎合4大趋势: 1. array-based (Tensor) 2. GPU加速 3. 自动求导 (Auto Differentiation) 4. 拥抱Python生态 4大设计原则: 1. 使用算法和数据开发者熟悉的Python做编…

IDEA Tomcat环境配置(CATALINA_BASE、乱码encoding)

IDEA Tomcat环境配置(CATALINA_BASE、乱码encoding) 基础配置 在idea中启动tomcat,默认会在用户目录生成一堆临时运行目录,因为他读的CATALINA_BASE为用户目录 如何处理 在tomcat配置里面的Stratup/Connection里面分别为Run和Debug在Pass environment v…

Profibus_DP转ModbusTCP网关模块连马保与上位机通讯

Profibus转ModbusTCP网关模块(XD-ETHPB20)广泛应用于工业自动化领域。例如,可以将Profibus网络中的传感器数据转换为ModbusTCP协议,实现数据的实时监控和远程控制。本文介绍了如何利用Profibus转ModbusTCP网关(XD-ETHP…

【Linux】进程信号详解

一、信号 1. 信号的概念 Linux提供的让用户或进程给其他进程发送异步信息的一种方式,信号由进程发送的,属于软件中断。 2. 信号的作用 当 进程执行出现致命错误 或 进程所需的软件条件不具备 时,给操作系统提供的一种及时终止进程的机制当用…

【qt】考试系统项目

话不多说,先一睹芳颜 咱们的账号,题库和答案都是通过文件获取的. 话不多说,直接开干 目录 一.登录窗口1.界面设计2.邮箱验证3.登录验证 二.题库窗口1.考试计时2.布局管理器3.题库显示4.按钮布局5.计算分数 三.窗口交互四.完整代码五.结语 一.登录窗口 1.界面设计 这里添加背…

跟着操作,解决iPhone怎么清理内存难题

在如今智能手机功能日益强大的时代,我们使用手机拍照、录制视频、下载应用、存储文件等操作都会占用手机内存。当内存空间不足时,手机运行会变得缓慢,甚至出现卡顿、闪退等现象。因此,定期清理iPhone内存是非常必要的。那么&#…

人工智能与专家系统:构建智慧决策的未来

引言 随着信息技术的飞速发展,人工智能(AI)已经成为当今科技领域的一个重要分支,并在多个行业中展现出了巨大的潜力和影响力。人工智能通过模拟人类的智能行为,使计算机能够执行诸如学习、推理、解决问题和理解自然语言…

vite-服务端渲染(ssr)项目线上频繁刷新(踩坑记录)

今天来分享一个我在公司修改之前前端留下来的项目的坑。来说说大致的一个经过把,我老板说这个项目是之前的一个前端做的,用的是ssr服务端渲染的技术,不过他项目在线上会一直频繁的刷新,据说他想破脑袋都想不出来,最终因…