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

如何使用VBA将整个工作表内容以静态值复制到另一工作表

复制整张工作表静态值的VBA方案

你可以通过以下两种方式实现无需指定固定范围,动态复制整张工作表的所有静态值(移除公式,仅保留计算结果):

方法1:直接赋值(高效简洁)

利用UsedRange自动识别工作表中所有已使用的单元格范围,直接将值赋值到目标表:

Public Sub CopyEntireSheetValues()
    Dim sourceSheet As Worksheet
    Dim targetSheet As Worksheet
    
    ' 定义源表和目标表
    Set sourceSheet = ThisWorkbook.Sheets("MAIN")
    Set targetSheet = ThisWorkbook.Sheets("Static Data")
    
    ' 动态复制所有已使用单元格的值
    targetSheet.Range(sourceSheet.UsedRange.Address).Value = sourceSheet.UsedRange.Value
End Sub
  • 优势:执行速度快,无需依赖剪贴板
  • 说明:UsedRange会自动覆盖所有包含数据、公式或格式的单元格,无需手动修改范围地址

方法2:复制粘贴为值(支持格式保留)

如果需要保留源表的格式(如数字格式、单元格样式),可以用Copy+PasteSpecial仅粘贴值:

Public Sub CopySheetAsValues()
    Dim sourceSheet As Worksheet
    Dim targetSheet As Worksheet
    
    Set sourceSheet = ThisWorkbook.Sheets("MAIN")
    Set targetSheet = ThisWorkbook.Sheets("Static Data")
    
    ' 可选:清空目标表原有内容
    targetSheet.Cells.Clear
    
    ' 复制源表全部内容,粘贴为值到目标表起始位置
    sourceSheet.Cells.Copy
    targetSheet.Range("A1").PasteSpecial Paste:=xlPasteValues
    
    ' 若需要保留数字格式,可替换为:
    ' targetSheet.Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
    
    ' 清除剪贴板,避免弹窗提示
    Application.CutCopyMode = False
End Sub
  • 优势:灵活控制粘贴内容(值、格式、公式等),适合需要保留格式的场景
  • 说明:sourceSheet.Cells代表整张工作表的所有单元格,无需指定具体范围

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 08:40:28