VBA ShapeRange.Rotation属性随机停止工作

时间:2016-07-27 12:59:40

标签: excel vba excel-vba

我正在尝试旋转形状。以下是相关摘录。

Sheets("Sheet1").Shapes.Range(Array("Down Arrow 8")).Select
Selection.ShapeRange.Rotation =  90 + Sheets("Sheet2").Range("H8")

我的问题是最后一行随机工作而且随机不行!我曾经把它作为一个数字(而不是字符串),但这拒绝工作!它工作正常,然后我对宏进行了一些更改,然后它有用地返回错误438 - 对象不支持此属性或方法。我摆弄,调试等(没有改变代码),它开始工作!然后我做了一些更改,它停止工作,似乎已经停止工作了。我确实从录制的宏中复制了这段代码。

我尝试过: 使用CStr()将值转换为字符串 声明变量并使用变量

我真正不明白的是,为什么没有我改变代码就可以工作,如果没有我改变代码就停止工作(即相关的行)

1 个答案:

答案 0 :(得分:0)

一些事情。首先,避免选择。没有必要,将来会为您节省很多头痛和时间。其次,您可以直接从Shapes对象引用其名称形状,假设您只想使用代码旋转一个形状。最后,您确定Sheets("Sheet2").Range("H8")中的值是数字吗?如果不是,这可能会导致错误。下面的代码处理前两个问题。除此之外,我们还需要查看更多代码来确定错误。

Sheets("Sheet1").Shapes("Down Arrow 8").Rotation = 90 + Sheets("Sheet2").Range("H8")