Copy/pasting 个具有形状的单元格

Copy/pasting cells with shapes

如何复制形状及其所在的单元格?当我手动复制时,形状跟随单元格,但是当我用宏复制时,除了形状之外,我得到了其他所有东西。

Cells(sourceRow, sourceColumn).Copy
Cells(targetRow, targedColumn).PasteSpecial

...

Range("A1").copy
Range("B2").PasteSpecial Operation:=xlPasteAll

我想尽办法了...但那个形状就是动不了。

记录了手册copy/paste,这是我得到的:

Range("A1").Select
Selection.Copy
Range("A3").Select
ActiveSheet.Paste

试试这个

Range("A1").Select
Selection.Copy
Range("B1").Select
ActiveSheet.Paste


我会做这样的事情来避免实际上 select 单元格:

Sub MoveShape()

  Dim s As Shape
  Dim T, L, celWidth, shpWidth, celHeight, shpHeight As Double
  Dim rng As Range
  Dim ws as Worksheet

  Set s = ws.Shapes(1).Duplicate ''You'll have to get the index of the shape you want to copy 
  Set rng = Range("A3") ''Set this to your target range

  T = rng.Top
  L = rng.Left

  celWidth = rng.Width
  shpWidth = s.Width

  celHeight = rng.Height
  shpHeight = s.Height

  s.Top = T + (celHeight - shpHeight) / 2
  s.Left = L + (celWidth - shpWidth) / 2

End Sub

这将复制您的形状,并将生成的克隆体放在目标范围的中心。您可以通过修改 s.Lefts.Top 值来更改其在单元格中的位置。

您现在可以使用 Range("A3").Value = Range("A1").Value 将单元格的实际值复制到您的目标范围