如何修改Excel宏代码实现复制行时仅粘贴单元格数值?
错误原因说明
你之前的写法存在两处语法问题:
Copy方法如果直接跟参数是指定粘贴目标,默认执行完整复制(含公式、格式等),不能直接拼接PasteSpecial方法PasteSpecial是方法而非属性,参数需要用Paste:=参数值的格式传递,不能直接用等号赋值
方案1:Copy+选择性粘贴实现
' 复制源区域内容到剪贴板 ws3.Range(ws3.Cells(4, 1), ws3.Cells(4, 2)).Copy ' 目标位置仅粘贴数值 ws2.Cells(2, 2).PasteSpecial Paste:=xlPasteValues ' 清空剪贴板,取消复制选区的虚线标识 Application.CutCopyMode = False
方案2:直接区域赋值(更推荐)
不需要占用剪贴板,运行效率更高,尤其处理大量数据时优势明显:
' 将目标区域扩展为和源区域相同的1行2列大小,直接赋值数值 ws2.Cells(2, 2).Resize(1, 2).Value = ws3.Range(ws3.Cells(4, 1), ws3.Cells(4, 2)).Value
内容的提问来源于stack exchange,提问作者PCG
相关产品推荐
相关产品推荐

