CopyPaste宏(Pastespecial,查找和替换)

时间:2015-07-14 08:43:31

标签: excel vba excel-vba

我一直在这里使用一个简单的复制粘贴示例,现在需要开始使用paste special和一个Find和replace。

例如,我有A,B,E列。我想将B的内容复制到E。

所以我用的是:

Sub sbCopyRange()

Range("B2:B10").Copy
Range("E2").Select
ActiveSheet.Paste
Application.CutCopyMode = False

End Sub

现在我需要它作为特殊粘贴,以及查找和替换所有“^”并用 (CntrlShift+ J) 替换它们,以便它创建换行符“^”的。我以为我可以用记录功能做到这一点但是我在一个更大的文档中为我的新范围调整它时发现了一些问题。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

要复制到另一个目的地,您已正确选择左上角的单元格作为目标,但有一个缩写的复制命令可用于单个操作。

With ActiveSheet  '<- set this to something like With Sheets("Sheet1")
    .Range("B2:B10").Copy _
        Destination:=.Range("E2")
End With

您还可以执行直接值传输,该传输相当于“复制”,“粘贴特殊”,“值”,但需要调整目标的大小以适合源。但是,由于您希望在目标单元格上执行替换,因此无论如何您确实需要它的尺寸。

Dim rng As Range
With ActiveSheet  '<- set this to something like With Sheets("Sheet1")
    Set rng = .Range("B2:B10")
    With .Range("E2").Resize(rng.Rows.Count, rng.Columns.Count)
        .Value = rng.Value
        .Replace what:=Chr(94), replacement:=Chr(10), lookat:=xlPart
    End With
End With