我有一个与这个非常相似的问题,我有:
- 创建了一个带有迷你图的工作表,它引用了一个动态范围
- 我有一个宏,它通过循环更新一些单元格(因此每次循环迭代都会改变迷你图)
- 复制大范围(包括迷你图和其他命名范围)
- 将此范围粘贴到第二张纸中(我无法弄清楚如何以其他方式进行操作,因此我使用该
Range.CopyPicture
方法并将范围作为图片粘贴到第二张纸上,但是如果您知道粘贴的方法迷你图本身,这样当我再次更新 raneg 时它不会更新,请告诉我)
现在,我的问题是,如果我在调试模式下单步执行代码,一切正常,但是如果我让宏自动运行,迷你图永远不会更新(所以它总是看起来像第一次运行宏) .
作为我的问题的一个简单示例,假设我的工作表中有这个:
Cells A1-A10:
1,2,3...,10 (what I'll use for the sparkline range)
Cell Named "StartCol":
=RANDBETWEEN(1,9)
Cell Named "Width":
=RANDBETWEEN(1,10-StartCol)
Dynamic range Named "SparkRange":
=OFFSET(Sheet1!$A$1,0,StartCol-1,1,Width)
Cell With a SparkLine within a larger range Named "ToCopy"
A Second Sheet Named "OutPut" with a named range "Output" where we'll start pasting to
现在,简单的 VBA 代码:
Sub Test()
Sheets("Output").Select
For i = 1 To 10
Application.Calculate ' Probably not needed, but putting it in to be safe
Sheets("Sheet1").Range("ToCopy").CopyPicture
Sheets("Output").Range("Output").Select
Sheets("Output").Paste
Sheets("Output").Names("output").RefersTo = Sheets("Output").Range("Output").Offset(Sheets("Sheet1").Range("ToCopy").Rows.Count + 2)
Next i
End Sub
现在,这应该粘贴 10 个不同的迷你图,但它会粘贴 10 个相同的迷你图。并且如果我在调试模式下单步执行它(或者甚至设置断点然后F5
在 VBA 中运行,那么它就可以工作了!)再次,我查看了上面提到的问题并尝试了它的技巧无济于事....任何人都知道如何让它适用于迷你图????
非常感谢!!!