如何使用PasteSpecial和Size在VBA中粘贴目标格式?

时间:2019-06-27 03:44:21

标签: excel vba trim paste

我想cltr + v并执行一个代码,该代码会尽可能地粘贴目标格式

好吧,我粘贴特殊的值,然后重新设置值

但是我在ActiveCell.PasteSpecial(xlPasteValues)行上发生错误,“ Range类的PasteSpecial方法失败1004运行时错误”

我想使这段代码简洁,但遇到一些麻烦。

此外,由于某种原因(尽管修剪,右对齐和名称“ calibri”工作正常),粘贴值的.Size值不正确(“对象不支持此属性”错误)

有什么想法吗?谢谢!

Sub PasteWithDestinationFormatting()

     ActiveCell.PasteSpecial (xlPasteValues)

End Sub


Sub TrimAndFit()

    Dim r As Range


    Call PasteWithDestinationFormatting



    With Application.WorksheetFunction

        For Each r In Intersect(Selection, ActiveSheet.UsedRange)

            r.Value = .Trim(r.Value)

            r.HorizontalAlignment = xlHAlignRight

            r.Name = "Calibri"

            r.Size = 11

        Next r

    End With

End Sub

2 个答案:

答案 0 :(得分:0)

VBA intellisense应该在这里给您提示。如果您开始在VBE中输入有问题的行,您会发现Size 不是 Range object(链接到dox)的可用属性。

enter image description here

假设您要将字体大小设置为11,则需要:

r.Font.Size = 11

答案 1 :(得分:0)

尝试:

Option Explicit

Sub test()

    With ThisWorkbook.Worksheets("Sheet1")
        'Copy value & formatting from cell A1 to A2
        .Range("A1").Copy .Range("A2")
    End With

End Sub

结果:

enter image description here