【发布时间】:2018-09-18 15:18:25
【问题描述】:
我想将单元格中的某些值从一个选项卡复制到另一个选项卡。
Sheets("Equities").Select
Range("B5").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Sheets("ZSM").Select
Range("B5").Select
ActiveSheet.Paste
Sheets("Bonds").Select
Range("B5").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Sheets("ZSM").Select
Range("B5").Select
Selection.End(xlDown).Select
Selection.End(xlToRight).Select
ActiveCell.Offset(1, 1).Select
ActiveSheet.Paste
我想修改代码以从公式(例如“= J5*K24”)中复制值(我只想要公式返回的值)。
我通过以下方式修改了代码:
Sheets("Equities").Select
Range("B5").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Sheets("ZSM").Select
Range("B5").Select
ActiveSheet.PasteSpecial ###here
Sheets("Bonds").Select
Range("B5").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Sheets("ZSM").Select
Range("B5").Select
Selection.End(xlDown).Select
Selection.End(xlToRight).Select
ActiveCell.Offset(1, 1).Select
ActiveSheet.PasteSpecial ##here
我阅读了一些有关 PasteSpecial 方法的信息,但无法应用它。
【问题讨论】:
-
不是您问题的答案,但请阅读How to avoid Select in VBA。
-
比如你可以使用
Sheets("Equities").Range("B5").Copy // Sheets("ZSM").Range("B5").PasteSpecial xlValues或者更快捷的单行Sheets("ZSM").Range("B5").value=Sheets("Equities").Range("B5").value。 -
xlPasteValues这是可用选项列表docs.microsoft.com/en-us/office/vba/api/excel.xlpastetype -
现在我编辑了我的帖子。我希望能澄清问题。谢谢你:)
-
SJR 最初的评论怎么强调都不过分。请避免在 VBA 中使用
Select。它可能导致难以调试的奇怪行为。
标签: vba excel excel-2010