13

我正在编写一种可以将Target单元格准确粘贴到另一个单元格的方法。该单元格是一个带有一些花哨格式的运输标签。有什么办法可以做到吗?

最初我有这个:

Worksheets("Label").Range("A1").Value = Worksheets("Get Address").Range("A28").Value

它适用于纯文本。但是我失去了我创建的样式,它们是不同的,因为在第一行之后,样式是不同的:

在此处输入图像描述

我也尝试使用 Macro Recorder,我得到了一个解决方案.Select,我读了这个问题,尽可能不要使用它。我能做些什么?

' Created by the Macro Recorder
Range("A28:A33").Select
Range("A33").Activate
Selection.Copy
Sheets("Label").Select
Range("A1").Select
ActiveSheet.Paste
4

3 回答 3

24
Worksheets("Get Address").Range("A33").Copy _
       Destination := Worksheets("Label").Range("A1")
于 2013-05-22T18:19:11.647 回答
7

仅复制和粘贴值然后使用以下

Worksheets("Label").Range("A1").value = _
   Worksheets("Get Address").Range("A33").value

此语句不会使用剪贴板

于 2015-01-02T19:15:24.840 回答
0

您可以循环遍历范围的每个单元格,以在目标目标中复制和设置每个单元格的值、注释等。这是一个例子。

Sub CopySpecial(p_RangeFrom As String, p_OffsetRow As Integer, p_OffsetColumn As Integer)

    Dim l_Row As Integer
    Dim l_Column As Integer
    Dim thisCell As Range
    Dim l_TargetCell As Range

    l_Row = Range(p_RangeFrom).Row
    l_Column = Range(p_RangeFrom).Column

    For Each thisCell In Range(p_RangeFrom)

        Set l_TargetCell = Range(Cells(thisCell.Row + p_OffsetRow, thisCell.Column + p_OffsetColumn).Address)

        ' Copy the text
        l_TargetCell.Value = thisCell.Value

        ' Copy the comment only if we have a comment to copy
        If Not thisCell.Comment Is Nothing Then

            ' Delete any existing comment in the target cell, if any.
            ' If you don't to this the .AddComment Method below will fail.
            If Not l_TargetCell.Comment Is Nothing Then l_TargetCell.Comment.Delete
            Call l_TargetCell.AddComment(thisCell.Comment.Text)

        End If

        ' Add more items to copy here, such as color, etc.

    Next

End Sub

Sub TestCall()
    Call CopySpecial("A1:B2", 3, 3)
End Sub
于 2020-06-19T08:24:06.213 回答