当用户从下拉列表中选择是或否时,我想移动一个形状。我认为这很简单,即使用 VBA 剪切和粘贴形状,但它似乎不是那样工作的。
下图作为视觉表示:
目标是在选择“是”时将形状带入视野(单元格 CC18),而在选择“否”时将形状移到视野之外(理想情况下在另一张纸上,但也可以移动到同一张纸上)。
我运行Macro Recorder
并得到以下代码:
Sub Macro1()
'
' Macro1 Macro
'
'
ActiveSheet.Shapes.Range(Array("shpAPEX")).Select
Selection.Cut
Range("CH18").Select
ActiveSheet.Paste
End Sub
显然这并不理想,所以我试图将其翻译成更干净的东西,即:
ws.Shapes("shpAPEX").Cut
ws.Range("CC18").Paste
但这不起作用。它会剪切形状,但不会粘贴它。我可以通过在剪贴板中找到形状来看到这一点。
但是,以下代码有效:
ws.Shapes("shpAPEX").Cut
ws.Range("CC18").Select
ActiveSheet.Paste
谁能向我解释为什么我最初的尝试不起作用,以及在工作表之间移动形状的最佳方法是什么?