VBA-动态范围不在VBA中更新的迷你图
我有一个非常类似的问题,我有:VBA-动态范围不在VBA中更新的迷你图,vba,excel,sparklines,Vba,Excel,Sparklines,我有一个非常类似的问题,我有: 创建了一个工作表,上面有一个参考动态范围的小图标 我有一个宏,它通过循环更新一些单元格(因此在每次循环迭代中都会更改闪烁) 复制大范围(包括小范围和其他命名范围) 将此范围粘贴到第二张图纸中(我不知道如何使用其他方法,因此我使用range.CopyPicture方法将范围作为图片粘贴到第二张图纸中,但是如果您知道有一种方法可以粘贴闪影本身,以便在我再次更新raneg时不会更新闪影,请让我知道) 现在,我的问题是,如果我在调试模式下单步执行代码,一切都会顺利进行,但
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个副本。如果我在调试模式下单步执行它(或者甚至设置一个断点,然后在VBA中点击
F5
,它就会工作!)
再一次,我看了看上面提到的问题,并尝试了它的伎俩,但没有结果。。。。有没有人知道如何让这项工作的火花线
非常感谢 当您持续进行涉及excel/system处理多个事件的重复练习时,建议使用
DoEvents
将它们分开
例如,在您的情况下,您需要给Excel足够的时间将图像复制到剪贴板,然后将其粘贴回去
比如说
Sheets("Sheet1").Range("ToCopy").CopyPicture
Doevents '<~~ This gives enough time for the pic to be placed in Clipboard
Sheets("Output").Paste
DoEvents '<~~ This gives enough time for the pic to be pasted
Sheets(“Sheet1”).Range(“ToCopy”).CopyPicture
Doevents的BirdView:如果它在调试模式下工作,那么试试这个。添加Doevents
,以便有足够的时间将图像放入剪贴板,然后粘贴它?@SiddharthRout。。。刚刚试过。。。运气不好:(还有其他想法吗???-这一个很痛苦!!天哪-@SiddharthRout…我把它收回去!!!!-我把它放在另一个地方,它对你起了作用:你是我的英雄!!!请把它作为一个解决方案发布,这样我就可以给你信用了!!-我不能告诉你你帮了我多少忙!!!