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

VBA复制粘贴功能使用问题:无法正确粘贴PA_Model工作表内容

问题根源

你的代码存在两处核心逻辑错误:

  • 第一行仅引用了PA_Model工作表的当前数据区域,但并未对该区域执行复制操作,后续调用的Worksheets("PA_Model").Copy是复制整个工作表对象,并非你需要的单元格数据内容
  • 中间激活工作簿、新建工作表的操作可能导致剪贴板缓存被意外清空,最终粘贴时调用的是系统剪贴板中此前留存的内容
最优修复方案

推荐避免使用Activate、Select这类依赖窗口焦点的不稳定方法,直接通过对象引用操作数据,代码稳定性更高,调整后代码如下:

' 定义源数据区域
Dim srcRng As Range
Set srcRng = ThisWorkbook.Worksheets("PA_Model").Range("A1").CurrentRegion

' 在目标工作簿新建指定名称的工作表
Dim newSht As Worksheet
Set newSht = wb_new.Worksheets.Add
newSht.Name = New_Inforce & "_Data"

' 直接将源区域复制到目标位置,无需操作剪贴板
srcRng.Copy Destination:=newSht.Range("A1")

' 若仅需要粘贴值/格式,可替换为以下写法:
' srcRng.Copy
' newSht.Range("A1").PasteSpecial Paste:=xlPasteValues ' 粘贴数值
' newSht.Range("A1").PasteSpecial Paste:=xlPasteFormats ' 粘贴格式
' Application.CutCopyMode = False ' 清空剪贴板缓存

如果要保留你原有写法的逻辑,仅需要将前两行合并为一行即可生效:

' 直接复制指定区域
ThisWorkbook.Worksheets("PA_Model").Range("a1").CurrentRegion.Copy

wb_new.Activate
Worksheets.Add.Name = New_Inforce & "_Data"
Worksheets(New_Inforce & "_Data").Select
ActiveSheet.Paste

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 13:00:00