Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何添加代码以自动删除多余的工作表?

如何添加代码以自动删除多余的工作表?
EN

Stack Overflow用户
提问于 2021-01-14 13:31:21
回答 2查看 39关注 0票数 0

在@clomee的帮助下,非常感谢,我现在有这个代码。它允许我在单元格中输入一个特定的数字,它会复制我的模板窗口工作表,这样我就可以为每个工作表中的每一个输入单独的尺寸和规格。

下面的代码允许我输入6no,通过稍后将其更改为8,它将只复制模板2倍,而不是添加8个额外的副本。

我需要以某种方式给它添加另一个函数,所以如果我将单元格中的"8“替换为5,它将向后计数,并删除名称中数字>5的所有工作表。

这可能是简单的代码,但多亏了我在这里得到的帮助和答案,我才能走到这一步,并简化了我一开始的工作。

非常感谢!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Private Sub Worksheet_Change(ByVal target As Excel.Range)
    If target.Cells.Count = 0 Then Exit Sub
    If IsNumeric(target) And target.Address = "$B$4" Then
        Select Case target.Value
            Case 1 To 50: copierW
            End Select
            End If
End Sub
Sub copierW()
Dim sh1 As Worksheet, sh2 As Worksheet, sh As Worksheet, x As Integer
Set sh1 = Sheets("Main")
Set sh2 = Sheets("W-Template")
Set wh = Sheets("Reference")
x = ActiveSheet.Range("b4")
Count = 0
    For Each sh In Worksheets
        If Left(sh.Name, 1) = "W" And Right(sh.Name, 1) = "." Then
            Count = Count + 1
        End If
    Next sh
needed_copies = x - Count
    For numtimes = 1 To needed_copies
        ActiveWorkbook.Sheets("W-Template").Copy _
        After:=ActiveWorkbook.Sheets("Main")
        Count2 = Count + numtimes
        ActiveSheet.Name = "W" & Count2 & "."
    Next
Worksheets(1).Select
End Sub`
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-14 14:04:27

下面的代码删除所有在"W“之后包含更高数字作为x值的纸张。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Sub copierW()
Dim sh1 As Worksheet, sh2 As Worksheet, sh As Worksheet, x As Integer
Set sh1 = ThisWorkbook.Worksheets("Main")
Set sh2 = ThisWorkbook.Worksheets("W-Template")
Set wh = Sheets("Reference")
x = sh1.Cells(4, 2).Value
count = 0
    For Each sh In Worksheets
        If Left(sh.Name, 1) = "W" And Right(sh.Name, 1) = "." Then
            count = count + 1
        End If
    Next sh
needed_copies = x - count
If needed_copies < 0 Then
    For Each sh In Worksheets
        If Left(sh.Name, 1) = "W" And Right(sh.Name, 1) = "." And x < Left(Right(sh.Name, Len(sh.Name) - 1), Len(sh.Name) - 2) Then
            Application.DisplayAlerts = False
            ThisWorkbook.Worksheets(sh.Name).Delete
            Application.DisplayAlerts = True
        End If
    Next sh
Else
    For numtimes = 1 To needed_copies
        ActiveWorkbook.Sheets("W-Template").Copy _
        After:=ActiveWorkbook.Sheets("Main")
        Count2 = count + numtimes
        ActiveSheet.Name = "W" & Count2 & "."
    Next
End If
Worksheets(1).Select
End Sub
票数 0
EN

Stack Overflow用户

发布于 2021-01-14 14:02:34

这应该可以做你想要的事情。

我声明了未声明的变量,并将x更改为long (不要使用整数)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Option Explicit

Private Sub Worksheet_Change(ByVal target As Excel.Range)
    If target.Cells.count = 0 Then Exit Sub
    If IsNumeric(target) And target.Address = "$B$4" Then
        Select Case target.Value
            Case 1 To 50: copierW
            End Select
            End If
End Sub
Sub copierW()
Dim sh1 As Worksheet, sh2 As Worksheet, sh As Worksheet, wh As Worksheet, x As Long
Dim count As Long, needed_copies As Long, numtimes As Long, count2 As Long
Set sh1 = Sheets("Main")
Set sh2 = Sheets("W-Template")
Set wh = Sheets("Reference")
x = ActiveSheet.Range("b4")
count = 0
    For Each sh In Worksheets
        If Left(sh.Name, 1) = "W" And Right(sh.Name, 1) = "." Then
            count = count + 1
        End If
    Next sh
needed_copies = x - count
    If needed_copies < 0 Then
        Application.DisplayAlerts = False
        For Each sh In Worksheets
            If Left(sh.Name, 1) = "W" And Right(sh.Name, 1) = "." Then
                If Mid(sh.Name, 2, Len(sh.Name) - 1) > x Then
                    sh.Delete
                End If
            End If
        Next sh
        Application.DisplayAlerts = True
    Else
        For numtimes = 1 To needed_copies
            ActiveWorkbook.Sheets("W-Template").Copy _
            After:=ActiveWorkbook.Sheets("Main")
            count2 = count + numtimes
            ActiveSheet.Name = "W" & count2 & "."
        Next
    End If
Worksheets(1).Select
End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65719954

复制
相关文章
删除eclipse多余的工作空间
找到eclipse\configuration\.settings\org.eclipse.ui.ide.prefs文件,配置的命名空间就在这个文件中,双击打开这个文件夹,编辑里面的工作空间即可。
似水的流年
2018/01/14
1.1K0
删除eclipse多余的工作空间
删除eclipse多余的工作空间
找到eclipse\configuration\.settings\org.eclipse.ui.ide.prefs文件,配置的命名空间就在这个文件中,双击打开这个文件夹,编辑里面的工作空间即可。
似水的流年
2019/12/08
8010
WordPress删除头部wp_head()多余代码
如果你有查看过你的WordPress博客的“查看源代码”的话,你会发现头部的html代码非常多,而且是密密麻麻,有些像meta name="generator"的代码其实是没有什么用处的。如何清理他们
Jeff
2018/01/19
2.9K0
centos删除多余内核
使用以下代码找出系统中安装的内核rpm包 rpm -qa | grep kernel 结果应该类似于以下字符 kernel-firmware-2.6.32-358.23.2.el6.noarch abrt-addon-kerneloops-2.0.8-16.el6.centos.1.i686 kernel-devel-2.6.32-358.el6.i686 dracut-kernel-004-303.el6.noarch kernel-2.6.32-358.23.2.el6.i686 kernel-de
繁花云
2018/07/31
9350
顺序表应用2:多余元素删除之建表算法(SDUT 3325)
一个长度不超过10000数据的顺序表,可能存在着一些值相同的“多余”数据元素(类型为整型),编写一个程序将“多余”的数据元素从顺序表中删除,使该表由一个“非纯表”(值相同的元素在表中可能有多个)变成一个“纯表”(值相同的元素在表中只保留第一个)。 要求:        1、必须先定义线性表的结构与操作函数,在主函数中借助该定义与操作函数调用实现问题功能;       2、本题的目标是熟悉在顺序表原表空间基础上建新表的算法,要在原顺序表空间的基础上完成完成删除,建表过程不得开辟新的表空间;
Lokinli
2023/03/09
2090
怎么删除xcode中多余的证书
我们在进行iOS开发的过程中,当使用的开发证书过期或者开发证书过于冗余,需要删除多余的开发证书.或者也可以手动的选择正确的,需要的证书,但是对于有点强迫症的程序猿来说,既然多余的证书没用了,那还留着它
安德玛
2022/03/08
2.5K0
Oracle创建表、删除表、修改表(添加字段、修改字段、删除字段)语句总结
关于Oracle创建表、删除表、修改表(添加字段、修改字段、删除字段)语句的简短总结。
星哥玩云
2022/08/18
3.7K0
顺序表应用1:多余元素删除之移位算法(SDUT 3324)
一个长度不超过10000数据的顺序表,可能存在着一些值相同的“多余”数据元素(类型为整型),编写一个程序将“多余”的数据元素从顺序表中删除,使该表由一个“非纯表”(值相同的元素在表中可能有多个)变成一个“纯表”(值相同的元素在表中只保留第一个)。 要求:        1、必须先定义线性表的结构与操作函数,在主函数中借助该定义与操作函数调用实现问题功能;        2、本题的目标是熟悉顺序表的移位算法,因此题目必须要用元素的移位实现删除;
Lokinli
2023/03/09
2650
mobi电子书中删除多余的空格
  过年放假,还是在宅家里看书,结果发现,有些电子书网上整理的并不好,有很多没有用的空格,十分影响阅读效率,于是打算看看能不能解决一下。步骤也很简单,首先下载一个caliber,这个重度kindle使用者都知道,然后我们需要把mobi转换为epub格式,这个格式是可以编辑的,caliber有自带的caliber editor这样的编辑器,打开就好。
钱塘小甲子
2020/02/14
3K0
mobi电子书中删除多余的空格
clickhouse如何删除大表
clickhouse 在单表或单分区超过50GB时,将无法直接删除 1. 案例 模拟删除单表或单分区超过50GB时,删除报错的情况 1.1 一个表中超过50GB的分区 -- 删除分区的脚本如下 ALTER TABLE testdb.test DROP PARTITION (20220606,'12'); 报错信息如下 Code: 359. DB::Exception: Received from localhost:9000. DB::Exception: Table or Partition in
俊才
2022/11/11
2.5K0
如何删除 eclipse 中多余的 Tomcat server?为什么产生这种 bug?
可能有些同学在使用 Eclipse 进行项目开发的时候,存在对于 Tomcat 的错误操作,会发现在下面的工具栏里 Server 的选项里面有好多 Server,按理说我们有一个可以使用就行了。那我们该如何删除这些多余的 Tomcat Server 呢?强迫症总归是不舒服的,下面我们就来做一个小结。
白鹿第一帅
2022/05/08
1.2K0
如何删除 eclipse 中多余的 Tomcat server?为什么产生这种 bug?
如何删除 eclipse 中多余的 tomcat server?为什么产生这种 bug?
可能有些同学在使用 Eclipse 进行项目开发的时候,存在对于 Tomcat 的错误操作,会发现在下面的工具栏里 Server 的选项里面有好多 Server,按理说我们有一个可以使用就行了。那我们该如何删除这些多余的 Tomcat Server 呢?强迫症总归是不舒服的,下面我们就来做一个小结。
白鹿第一帅
2021/03/02
1.7K0
如何删除 eclipse 中多余的 tomcat server?为什么产生这种 bug?
给mybatis添加自动建表,自动加字段的功能
以前项目用惯了hibernate,jpa,它有个自动建表功能,只要在PO里加上配置就可以了,感觉很爽. 但现在用mybatis,发现没有该功能,每次都加个字段,还是要重新改表结构,我个人认为很麻烦. 上网找了一下,发现有个开源的actable,但是这个不好用,不符合实际项目要求。 开源的actable会自动删除表字段,更改表类型,更改表长度,但实际项目中,只允许自动创建表,加表字段即可,改长度,删字段这些都会有风险,不符合实际意义的,而且该开源库使用其来比较复杂 没办法,唯有自己拿过来改造。
星痕
2018/09/12
5K2
PageAdmin 如何添加信息表
网站有各种各样的需求,不同的网站需要保存的信息都不一致,如企业网站需要有产品表,新闻表,但学校网站需要新闻表,学生报名表等,自定义信息表很好解决这种需求,自定义信息表和自定义字段为PageAdmin的核心功能,后台内容管理中的子菜单都属于自定义信息表,如下图:
用户5258701
2019/05/25
9330
自动合并工作簿中各工作表数据
合并多表数据是工作中常见的情形。本文介绍一种在Excel及Power BI中不使用任何公式,快速合并一个工作簿中多个工作表的方法。
wujunmin
2021/09/07
1.6K0
自动合并工作簿中各工作表数据
git同步远程已删除的分支和删除本地多余的分支
可以发现红框中的分支是远程分支已被删除的分支,根据提示可以使用 git remote prune 来同步删除这些分支。
smy
2018/08/01
3.5K0
git同步远程已删除的分支和删除本地多余的分支
删除表中多余的重复记录(多个字段),只留有rowid最小的记录
--注意上面表中ID为自增长,如果User表中没有ID自增长,可以虚拟一个ID自增长列。
跟着阿笨一起玩NET
2018/09/19
3K0
点击加载更多

相似问题

如何自动删除工作表?

34

如何删除添加\n的多余空间

30

如何删除多余的行以填充行

10

如何使用JavaScript/ActiveX在Excel中删除多余的工作表

10

如何删除FTP程序添加到代码中的多余空格?

52
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文