Excel 以像素为单位将形状从一张图纸复制到另一张图纸

Excel 以像素为单位将形状从一张图纸复制到另一张图纸,excel,vba,Excel,Vba,下午好 我想将元素从一张图纸复制到另一张图纸。 当我们基于粗略单元范围时,这是一个简单的问题。 在我的例子中,问题看起来并不简单,因为我想要一些补偿 此处提供的查询: 这并不能真正解决我的问题,因为它显示了整个单元格的偏移量 我想用像素而不是单元格来表示偏移量。详情如下。黑色箭头显示了我设法粘贴到工作表中的对象。红色箭头显示此对象的目标位置。不幸的是,它不能坚持细胞范围 到目前为止,我的代码如下所示: Sub Divider() Sheets("Cables 1").Shapes("Di

下午好

我想将元素从一张图纸复制到另一张图纸。 当我们基于粗略单元范围时,这是一个简单的问题。 在我的例子中,问题看起来并不简单,因为我想要一些补偿

此处提供的查询:

这并不能真正解决我的问题,因为它显示了整个单元格的偏移量

我想用像素而不是单元格来表示偏移量。详情如下。黑色箭头显示了我设法粘贴到工作表中的对象。红色箭头显示此对象的目标位置。不幸的是,它不能坚持细胞范围

到目前为止,我的代码如下所示:

 Sub Divider()
 Sheets("Cables 1").Shapes("Divider1").Copy
 Location ActiveSheet.Range("B25").PasteSpecial
 Selection.Name = "Divider"
 End Sub

 Function Location(s, Target As Range)
 s.Left = Target.Left + 3
 s.Top = Target.Top - 1
 End Function
不幸的是,调试器不能容忍
ActiveSheet
前面的函数名。我得到了一个错误。 参数不是可选的

有没有办法使这个小偏移量变小?

试试看

Sub Divider()
    Dim Ws As Worksheet
    Dim Shp As Shape

    Set Ws = ActiveSheet

    Sheets("Cables 1").Shapes("Divider1").Copy
    Ws.Range("B25").PasteSpecial
    Selection.Name = "Divider"

    Set Shp = Ws.Shapes("Divider")
    Location Shp, Range("b25:L50")
End Sub

Function Location(s As Shape, Target As Range)
    With s
        .Left = Target.Left + 3
        .Top = Target.Top + 3
        .Width = Target.Width - 6
        '.Height = Target.Height - 6
    End With
End Function

Location
需要两个参数。。。您需要传递一个
形状
和一个
范围
。你两个都没做你是说把它们调暗?不。。。您需要传递位置两个参数:现在您有
ActiveSheet.Range(“B25”).PasteSpecial
,它根本不是参数。这是一个论点,但不是一个形状。