首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我的代码不复制ThisWorkbook并用一个新的增量名称保存它(为了版本历史)?

你好!根据你的问题,我将为你解答。

问题:为什么我的代码不复制ThisWorkbook并用一个新的增量名称保存它(为了版本历史)?

回答:在Excel VBA中,复制并保存工作簿的代码可以通过以下步骤实现:

  1. 首先,你需要使用VBA代码中的ThisWorkbook对象来引用当前打开的工作簿。
  2. 然后,你可以使用SaveCopyAs方法将工作簿保存为一个新的副本。这个方法会将工作簿保存到指定的路径,并使用指定的文件名。
  3. 为了实现版本历史,你可以在文件名中添加一个增量名称。这可以通过在文件名中使用日期和时间戳来实现,确保每次保存都有一个唯一的文件名。

下面是一个示例代码,演示了如何复制并保存工作簿:

代码语言:txt
复制
Sub SaveWorkbookWithIncrementalName()
    Dim originalWorkbook As Workbook
    Dim newWorkbook As Workbook
    Dim savePath As String
    Dim fileName As String
    
    ' 获取当前工作簿的引用
    Set originalWorkbook = ThisWorkbook
    
    ' 设置保存路径和文件名
    savePath = "C:\Path\To\Save"
    fileName = "Workbook_" & Format(Now, "yyyymmdd_hhmmss") & ".xlsx"
    
    ' 复制工作簿
    originalWorkbook.SaveCopyAs savePath & "\" & fileName
    
    ' 打开新的副本
    Set newWorkbook = Workbooks.Open(savePath & "\" & fileName)
    
    ' 在新的副本中进行操作
    ' ...
    
    ' 关闭并保存新的副本
    newWorkbook.Close SaveChanges:=True
End Sub

在这个示例代码中,savePath变量表示保存路径,你需要根据实际情况进行修改。fileName变量使用了当前日期和时间戳来生成唯一的文件名。

请注意,这只是一个示例代码,你可以根据自己的需求进行修改和扩展。

推荐的腾讯云相关产品:腾讯云对象存储(COS)

  • 概念:腾讯云对象存储(COS)是一种海量、安全、低成本、高可靠的云存储服务,适用于存储和处理任意类型的文件。
  • 优势:高可靠性、高可用性、低成本、安全性高、灵活易用。
  • 应用场景:备份与归档、静态网站托管、大规模数据处理、移动应用、多媒体共享与分发等。
  • 产品介绍链接地址:腾讯云对象存储(COS)

希望这个回答能够帮助到你!如果你有任何其他问题,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Excel编程周末速成班第3课:Excel对象模型

提示:你代码应该总是考虑可能错误,尤其是在处理文件时。为了清楚起见,本课程中示例代码通常会省略错误处理代码,但这并不意味着你可以这样做!...要以新名称保存工作簿,使用SaveAs方法: WB.SaveAs(Filename) WB是对工作簿引用,filename是保存工作簿名称。该名称可以包含.xlsx扩展名,也可以包含。...如果省略,则Excel会自动添加。如果你希望工作簿保存在Excel默认数据文件夹中,则名称还可以包括驱动器和/或路径信息。...然而,对ThisWorkbook需求可能并不明确,在许多情况下,正在执行VBA代码位于该代码所操纵同一工作簿中,因此不需要ThisWorkbook。...要将工作表复制到另一个工作簿,省略After和Before参数。Excel创建一个工作簿,然后将工作表复制到其中。 提示:无法将工作表直接复制或移动到现有工作簿。

5.1K30

Excel数据表分割(实战记录)

注意替换代码表格名称和每个表格行数,以适应你实际情况。...如果每10行数据创建一个工作簿而不是工作表(Sheet),可以使用以下VBA代码复制代码 Sub 分割数据() Dim 原始表 As Worksheet Dim 表 As...End Sub 请注意,此代码将创建工作簿,并在每个新工作簿中复制相应数据。你可以根据需求修改代码保存路径和文件名。运行代码后,将显示一个弹出窗口,指示成功分割为多少个表。...End Sub 这段代码将会根据每个起始行和结束行,将原始数据对应部分复制表中,保证每个数据只出现在一个表格中,同时每个表包含连续10行数据。...请注意,在代码中,假设原始数据从第一行开始,且每个表都保存为单独Excel文件。你可以根据实际需求进行修改。

37920
  • EXCEL VBA语句集300

     Option Base 1 ‘指定数组一个下标为1 (2) On Error Resume Next ‘忽略错误继续执行VBA代码,避免出现错误消息 (3) On Error GoTo...() ‘创建一个工作簿 (9) Workbooks(“book1.xls”).Activate ‘激活名为book1工作簿 (10) ThisWorkbook.Save ‘保存工作簿 ...‘返回活动工作薄名称 (14) ThisWorkbook.Name ‘返回当前工作簿名称 ThisWorkbook.FullName ‘返回当前工作簿路径和名称 (15) ActiveWindow.EnableResize...(xlExcelLinks)(1) ‘返回当前工作簿中第一条链接 (106) ActiveWorkbook.CodeName ThisWorkbook.CodeName ‘返回工作簿代码名称...(107) ActiveWorkbook.FileFormat ThisWorkbook.FileFormat ‘返回当前工作簿文件格式代码 (108) ThisWorkbook.Path

    1.9K40

    Flink 管理大型状态之增量 Checkpoint

    状态在流计算很多复杂场景中非常重要,比如: 保存所有历史记录,用来寻找某种事件模式 保存最近一分钟所有记录,对每分钟记录进行聚合统计 保存当前模型参数,用于进行模型训练 但是,有状态流处理仅在状态可以容错情况下才建议在生产环境中使用...这些用户报告说在如此大状态下,创建 Checkpoint 通常比较耗费时间,也耗费资源,这就是我们为什么在 Flink 1.3 中引入增量 Checkpoint 原因。...然后 Flink 将所有 sstable 复制到持久化存储(例如 HDFS、S3)以在 Checkpoint 中引用。...这就是 Flink 增量 Checkpoint 能够切断 Checkpoint 历史原因。 为了追踪 Checkpoint 间差距,复制合并后 sstable 是一个相对冗余操作。...在 ‘CP 1’ Checkpoint 时,本地 RocksDB 目录包含两个 sstable 文件,该 Checkpoint 会把这两个文件复制到持久化存储上,并使用与 Checkpoint 名称一样目录名称

    3.3K31

    VBA实战技巧32:安装Excel加载宏

    所需值只是加载项路径及其名称,如下图3所示。 图3 选择了哪些加载宏 在注册表一个位置,Excel会记录选择了哪些加载项(在加载项对话框中检查)。...每次Excel启动时,都会弹出一个找不到加载项警告消息框,如下图6所示。 图6 因此,为什么代码会显示一个如下图7所示消息框。...(ThisWorkbook.FullName, False) oAddIn.Installed = True RemoveEmptyBooks 第一行代码确保在Excel中至少打开一个工作簿窗口。...最后一行关闭加载项打开所有工作簿。为什么?因为当没有活动工作簿时你无法打开加载项对话框,显然这也会阻止Excel通过VBA将加载项添加到列表中。...下面是添加一个空工作簿并再次删除代码: Option Private Module Dim moWB As Workbook Sub AddEmptyBook() '如果需要添加一个空工作簿.

    4.8K20

    VBA快速提取引用工程代码

    在利用VBAProject来共用VBA代码里介绍了使用VBAProject管理代码方法,但是有一个不方便地方,如果想把一个做好功能(引用了一些其他工程代码)发送给其他人使用,就需要把所引用工程代码复制到一起...在VBA操作VBA——VBA工程对象中介绍过,VBA是可以去操作VBA工程对象,所以,只要能够正确找到某个文件所直接引用以及间接引用工程,把所引用工程代码复制就可以。...在实现这个功能时候,有一个前提(这个可以看个人习惯): 每个被引用功能都有个模块MAPI,里面主要是写一些对外公开函数 MTest模块、ThisWorkbook模块以及以Sheet开头会被忽略...程序主要逻辑就是递归查找某个VBProject所引用工程,将工程对象FullPath记录到一个字典中,并用bRemove记录是否是直接引用,只有直接引用工程在复制代码后才需要断开引用。...找到所有引用工程之后,将每个工程代码复制过来就可以了: Private Type RefInfo r As Reference bRemove As Boolean '是否需要断开引用

    1.3K41

    RedisAOF持久化机制

    以日志形式来记录每个写操作(增量保存),将Redis执行过所有写指令记录下来(读操作记录), 只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据,换言之,redis 重启的话就根据日志文件内容将写指令从前到后执行一次以完成数据恢复工作...也可以设置配置文件名称,默认为appendonly.aof。 AOF文件保存路径,同RDB路径一致。...正常恢复 修改默认appendonly no,改为yes 将有数据aof文件复制一份保存到对应目录(查看目录:config get dir) 恢复:重启redis然后重新加载 异常恢复 修改默认appendonly....可以使用命令bgrewriteaof 2.4.1 重写原理,如何实现重写   AOF文件持续增长而过大时,会fork出一条新进程来将文件重写(也是先写临时文件最后再rename),redis4.0版本重写...,是指上就是把rdb 快照,以二级制形式附在aof头部,作为已有的历史数据,替换掉原来流水账操作。

    40730

    Workbook工作簿对象方法(二)

    四、工作簿对象save方法 保存excel工作簿,在VBA中主要是通过workbook工作簿对象save方法和saveas方法 代码thisworkbook.save 表示保存代码所在工作簿。...如果想将文件另存为一个文件,或者第一次保存一个新建工作簿,就用saveas方法。...代码模式如下: thisworkbook.saveas filename:="文件保存路径" 其中filename参数指文件保存路径及文件名,如果省略路径,默认将文件保存在当前文件夹中。...在关闭工作簿时,如果excel表有修改且没有保存,那么系统会在关闭前弹窗提示是否需要保存。如果希望出现弹窗,可以通过设置close方法参数来修改。 下面看下close方法完整格式。...举例如下: ThisWorkbook.Name返回示例中代码所在工作簿名称为“工作簿1.xlsm”。

    4.7K20

    合并拆分 Excel?Python、VBA轻松自动化

    当你收集了 n 个人 EXCEL 记录表,需要将它们汇成一个总表时你会怎么做呢? 如果不通过技术手段,要一个个打开再复制粘贴也太麻烦了吧! 此时就需要一个通过几秒钟点击就能完成合并工具。 ?...最终成品 合并 EXCEL VBA 实现合并 套路,下面直接放出 VBA 代码(来源于网络,经过了修改): Sub 合并当前目录下所有工作簿全部工作表() Dim MyPath, MyName,...如下目录中放着 3 个待合并 EXCEL 表,每个表中数据不同; ? 新建一个 EXCEL 文件后打开,用于存放合并后数据; ? 通过快捷键 Alt + F11 打开 VBA 界面; ?...打开Sheet1,将上面的代码复制粘贴到其中,按 F5 运行; ? 即将同目录下其他 3 个 EXCEL 文件中数据合并至此; ?...如下图所示,将一个表中 15 个任务拆分到了 3 个表中 ? ?

    2.3K20

    VBA: 将多个工作簿第一张工作表合并到一个工作簿中

    一般操作方法是打开两个工作簿(目标工作簿和待转移工作簿),然后选中需要移动工作表,右键单击以后选择“移动或复制”。接下来在对话框里面进行设置。 这种方法适合在移动少量工作表时候使用。...如果有很多工作簿,都需要进行移动的话,一个一个打开然后再操作比较费时费力。这时就可以使用VBA来批量进行操作。...在目标工作簿内,插入一个模块,然后导入如下代码: Option Explicit Sub MergeWorkbook() '将多个工作簿第一张工作表合并到目标工作簿中...,包含文件拓展名 Set first_sheet = ActiveWorkbook.Worksheets(1)...End Sub (1) 将目标工作簿和待转移工作簿放在同一个文件夹内; (2)上述代码要实现功能是,将同一个文件夹内所有工作簿(目标工作簿除外)第一张工作表拷贝到目标工作簿内,并将表名设置为拷贝前所属工作簿名称

    5.8K11

    redis如何实现高可用【主从复制、哨兵机制】

    全量同步过程: 1:当一个从数据库启动时,会向主数据库发送sync命令, 2:主数据库接收到sync命令后会开始在后台保存快照(执行rdb操作),并用缓存区记录后续所有写操作 3:当主服务器快照保存完成后...增量复制过程主要是主服务器每执行一个写命令就会向从服务器发送相同写命令,从服务器接收并执行收到写命令。...升级为Master, 并让失效Master其他Slave改为复制Master; 当客户端试图连接失效Master时,集群也会向客户端返回Master地址,使得集群可以使用Master代替失效...虽然哨兵(sentinel) 释出为一个单独可执行文件 redis-sentinel ,但实际上只是一个运行在特殊模式下 Redis 服务器,你可以在启动一个普通 Redis 服务器时通过给定 -...光靠redis主从复制和哨兵机制不足以实现redis高可用。为什么呢? 因为若某一节点宕机后,不会实现自动重启。

    63620

    分析一个用于传播Hancitor恶意软件Word文档(第一部分)

    提取了一个经打包可执行文件,并用一个干净版本(即包含恶意宏)替换了恶意文档,以防止出现几个Hancitor实例同时运行情况。 ?...kfs() kfs()看上去像是垃圾代码,因为作用只是简单地将页面向下移动14,向右移动24,使用backspace一次,然后复制一些东西,而这并不会造成太大影响。 ?...让我们回到宏,并查看最后一个子程序Module1.killo()。简单来说,killo()负责保存Word文档干净版本(即包含恶意宏)。为此,它将其保存为XML格式,从而删除文件中所有宏。...如果进程名称与PSUAMain.exe匹配 ,则另外2个字符串会被解码并用于形成shell命令,由Shell在行开头执行。...不确定为什么会这样,但我相信背后必然有一大堆理论,只是还没有找到。一旦执行了最终payload,宏运行也就结束了,只留下6.exe 或 6.pif运行。

    1.4K21

    技术译文 | MySQL 备份和恢复最佳实践:终极指南

    物理备份 简而言之,由数据库目录和文件精确副本组成。这可以是 MySQL datadir 目录全部或部分副本。这种备份最常用于轻松快速地恢复或创建副本节点,并用于解决主机故障。...与增量备份相关主要风险是: 单个损坏增量备份可能会使所有其他备份失效 增量备份通常会对 RTO 产生负面影响 对于差异备份,它会复制与上次备份差异,其优点是从一个备份到下一个备份大量数据不会发生更改...此操作可验证您备份未损坏,并提供有关恢复时间关键指标。此过程应该自动化,以获取完整备份、恢复,并最终将此服务器配置为当前主服务器或另一个副本副本。这也有助于验证复制过程没有错误。...验证 MySQL 备份 因此,您已经获得了遵循所有最佳实践备份过程。那你怎么知道备份成功了?你看过文件大小吗?您是否只检查创建了一个文件?也许您只查看了您使用工具退出代码?...技术译文 | 一文了解 MySQL 全新版本模型 技术译文 | MySQL 8 和 MySQL 5.7 在自增计数上区别 技术译文 | MySQL 和 MariaDB 版本管理历史背景及差异 关于

    60520

    Git使用教程(看完会了也懂了)

    版本库也就是git仓库,Git 仓库是用于版本控制一个特殊目录(.git目录),保存了项目的完整历史记录和元数据信息。...本地仓库(Local Repository): 本地仓库是Git核心组成部分,保存代码仓库完整历史记录。...主要作用: 历史记录和版本控制: 本地版本保存代码仓库完整历史记录。每当使用git commit命令提交更改时,Git会为该提交创建一个版本,并将其永久保存在本地版本库中。...这一步是为了给克隆项目提供一个位置,用于存储远程仓库内容和版本历史。 克隆仓库:使用git clone命令,将远程仓库内容复制到本地仓库中。...分支概念是比较好理解,git版本库就是由很多个分支组成,我们创建分支时候,默认就是main/master分支,也就是主分支,这个名称在安装时候有提到过; 如果把每次commit看作一个版本提交

    1.3K21

    数据仓库设计和规范—数仓分层和规范

    命名规范          通常命名方式是:ODS_应用系统名(或缩写)_数据库类型_(数据库名称可省略)_数据表名_加载方式(增量还是全量),表名不能太长,一般超过30字。...通常维表可能需要schema变更,例如用户画像标签信息表,随着标签内容增加,描述用户维度信息增加,所以会基于用户基础信息表,用户画像标签信息表进行迭代加工,这时候应该保留历史数据和对应历史版本,设置保留存活时间...维表设计字段冗余,为了使用时字段全表扫描,采用列存储方式;     1. 针对缓慢变化维,保留历史数据和版本TTL为30天, 方便数据追踪,后续统一使用维表。 三....从ODS到DWS层任务深度不宜过大(建议超过10层,包含临时表加工)。 一个计算刷新任务只允许一个输出表,特殊情况除外。 DWM汇总层优先调用DWD明细层,可累加指标计算。...        分析指标DAU,订单数,支付金额数据来源用户日志埋点表,用户订单支付表业务对象数据大盘,APP运营,高层报告备注        2.3 指标说明规范, 和目前一致,增加对应指标加工变更版本保存

    5.2K23

    “王者对战”之 MySQL 8 vs PostgreSQL 10

    在 PostgreSQL 中进行复制缺乏配置灵活性,这就是 Uber 转向 MySQL 原因。但是现在,有了逻辑复制特性,就可以通过创建一个版本 Postgres 并切换到来实现零停机升级。...此外,它还有一个用于撤销单独段,称为“回滚段”。与 Postgres 不同是,MySQL 将在一个单独区域中保存同一记录多个版本。...为了做到这一点,Postgres将旧数据保存在堆中,直到被清空,而MySQL将旧数据移动到一个名为回滚段单独区域。...MySQL维护两个单独日志:1.用于崩溃恢复InnoDB特定重做日志,以及 2. 用于复制增量备份二进制日志。...更大重做日志产生更高性能,但要以崩溃恢复时间为代价。 随着复制功能添加到Postgres,觉得他们不分伯仲。

    4.2K21

    day10 | Git正确使用姿势与最佳实践 | 第三届字节跳动青训营笔记

    版本控制是什么? 一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况系统 为什么需要版本控制?...集中式版本控制 SVN 提供一个远端服务器来维护代码版本,本地不保存代码版本,解决多人协作问题 分布式版本控制 Git 每个仓库都能记录版本历史,解决只有一个服务器保存版本问题 1.1.1 本地版本控制...-RCS 最初方式:通过本地复制文件夹,来完成版本控制,- 般可以通过不同文件名来区分版本 解决方案:开发了一些本地版本控制软件,其中最流行是RCS 基本原理:本地保存所有变更补丁集,可以理解成就是所有的...增量保存每次提交Diff,如果提交增量中和远端现存文件存在冲突,则需要本地提前解决冲突。 优点: 学习简单,更容易操作。 支持二进制文件,对大文件支持更友好。...Instead Of配置没有配,配SSH免密配置,但是使用还是HTTP协议访问。 为什么Fetch了远端分支,但是看本地当前分支历史还是没有变化?

    1.1K30

    文件夹中多工作薄指定工作表中提取指定字符数据

    文件夹中多工作薄指定工作表中提取指定字符数据 【问题描述】一个文件夹中有4年公司销售情况Excel文件,一个一个文件,每个文件中有一个工作表”销售情况”,请你在“销售情况”工作表中,复制出”...小龙女”销售金额,并汇总到一个工作表,计算出“小龙女”这四年来销售总额 【难点】一个一个文件,每个文件要打开-----复制“小龙女”销售金额----粘贴到汇总文件----关闭文件---“不保存”...【解决方法】 用VBA程序,Dir文件夹中所有文件,workbooks.open每一个文件,Find(“小龙女”),找到行,再打这一行单元格全部赋值给数组。...数组第一列全部保存“文件名“可以知道来源, 【说明】:还好,每个文件中只有一个”小龙女”一行数据,如果是多行,也不知道怎么办,还没想到。...【代码如下】 Sub test() Dim wbk As Object, sht_main As Worksheet Dim mfile As String Dim arr(1 To

    94310

    数据搬运工—数据集成

    生产数据,只是数据搬运工。在大数据平台中,是生产数据,或者说原始数据都是来源于业务系统。所以,我们需要做第一件事,就是将业务系统数据搬运到数据平台。...改用那句耳熟能详的话,生产数据,只是数据搬运工。这个数据搬运工,就是数据平台一个模块--数据集成。...数据同步:则是将数据从一个数据源复制或传输到另一个数据源,以保持两个数据源中数据一致性。数据同步通常涉及到实时或准实时数据传输和复制,可以用于分布式系统中数据复制、备份以及容灾等场景。...对这些名称一个基本概念之后,结合实际公司习惯、部门历史使用习惯、以及上下文语境来做具体区分。个人习惯数据集成和数据同步这两个词大部分情况下会混用。...一比一同步同步数据目的是保留业务数据历史,如果要保留历史那么错误历史也是历史。所以这种同步就是完全和业务系统数据一比一同步,即使同步过来数据是有异常或者说标准

    18210
    领券