2

我有一本有 54 张纸的工作簿。“大师”总计”和“第 1 周”到“第 52 周”

我正在尝试将文件中的图像插入到工作表“Week1”到“Week52”的单元格中。

我尝试了许多代码,并且能够正确放置图像并调整其大小

下面的代码都放置了图像,我能够操纵它们以将图像放置在正确的位置和正确的大小。

但是我不能让它们穿过其他床单(第 1 周到第 52 周)

Set oPic = Application.ActiveSheet.Shapes.AddPicture("C:\Users\Public\Documents\Cranes\MinerPic.wmf", False, True, 1, 1, 1, 1)
oPic.ScaleHeight 0.3, True
oPic.ScaleWidth 0.3, True
oPic.Top = Range("p2").Top
oPic.Left = Range("p2").Left
.OnAction = "FC4.xlsm!MineSheet"

或者

 pPath = "C:\Users\Public\Documents\Cranes\MinerPic.wmf"
 With ActiveSheet.Pictures.Insert(pPath)
 .Left = Range("p2").Left
 .Top = Range("p2").Top
 .ShapeRange.Height = 50
 .ShapeRange.Width = 50
 .OnAction = "FC4.xlsm!MineSheet"

在一个阶段,我能够将 52 张图像放在一起。我怀疑这与 Activesheet 命令有关。

我对 VBA 非常陌生,如果有任何帮助,我将不胜感激。

提前致谢。史蒂夫。

4

1 回答 1

1

像这样包装你的代码

For i = 1 To 52
    Set sh = ActiveWorkbook.Worksheets("Week" & i)

    ' Reference the sh object rather than ActiveSheet
    Set oPic = sh.Shapes.AddPicture( ...
    ' or
    With sh.Pictures.Insert(pPath)
    ' rest of your code
Next
于 2012-07-29T03:37:56.410 回答