You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VBA拆分Excel工作簿时为不同工作表设置差异化XLPaste粘贴规则

代码修改方案

你只需要调整循环内的逻辑,增加工作表名称判断即可,修改后的完整代码如下:

Private Sub CommandButton1_Click()

' Plain_Copy Macro
Sheets("PROCUREMENT").Visible = True
Sheets("Request").Visible = True
Sheets("LISTS").Visible = True
Sheets("Copy").Visible = True

Dim ws As Worksheet
With ActiveWorkbook
    .Sheets(Array("REQUESTOR", "PROCUREMENT", "Request", "LISTS", "Copy")).Copy

    Application.ScreenUpdating = False
    For Each ws In ActiveWorkbook.Worksheets
        ' 仅对指定的两个工作表执行转值操作
        If ws.Name = "REQUESTOR" Or ws.Name = "Copy" Then
            With ws.UsedRange
                .Copy
                .PasteSpecial xlPasteValuesAndNumberFormats
            End With
        End If
    Next ws

    Application.CutCopyMode = False
    Application.ScreenUpdating = True
End With
End Sub

改动说明

  • 移除了原代码中冗余无效的TheActiveWindow、TempWindow相关定义和TempWindow.Close语句,上述变量未做初始化赋值,放在循环内属于逻辑错误
  • 在工作表遍历循环中增加了名称判断逻辑:仅当工作表名称为REQUESTOR或Copy时,才执行粘贴为值与数字格式的操作,其余PROCUREMENT、Request、LISTS三个工作表会直接保留复制后的原有公式

内容的提问来源于stack exchange,提问作者Ted

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 09:09:12