我有一个工作表,用于组织,样式化和汇总数据,然后复制自身并将另一个副本保存为.PDF。
在原始工作表上,有3个由形状组组成的“按钮”,用于运行不同的宏(“重置”、“修复丢失的员工”、“打印和电子邮件摘要”)。问题是在副本中删除它们。这是从录制的宏:
ActiveSheet.Shapes.Range(Array("Group 2")).Select
Selection.Delete
我想选择/删除所有形状。我不能使用“shapes.select”、“shapes.delete”或我找到的任何帮助。除了上面列出的代码之外,每一次尝试都会导致“错误438 -对象不支持该属性或方法”,并突出显示代码的这一部分。
如何选择/删除工作表/书籍中的所有形状?(使用Excel 2010)
这是我使用的最终解决方案:
Dim sh As Shape
For Each sh In ActiveSheet.Shapes
If sh.Type <> msoPicture Then
sh.Delete
End If
Next sh
原因是因为我有一个我想要保留的形状,带有公司的标志——形状对象方法非常容易处理,因为<code>形状。键入属性(因为一个形状是msoPicture,其余是msorUndedRectangles)。同样有用的是,如果有一张我想删除的图片,它应该是<code>形状。Name指定要删除或跳过的对象。
大声呼喊@Gary的学生为我指明了这条道路!
您不需要选择工作表中的所有形状来删除它们。循环将执行以下操作:
Sub ShapeKiller()
Dim sh As Shape
MsgBox ActiveSheet.Shapes.Count
For Each sh In ActiveSheet.Shapes
sh.Delete
Next sh
End Sub
您可以同时删除多个Shape。这是一个找到某一行并删除所有上角在该行的Shape的示例:
Sub ShapePickerAndKiller()
Dim s As Shape, sr As ShapeRange
Dim Arr() As Variant
Set mycell = Range("A:A").Find(What:=0, After:=Range("A1"))
rrow = mycell.Row
i = 1
For Each s In ActiveSheet.Shapes
If s.TopLeftCell.Row = rrow Then
ReDim Preserve Arr(1 To i)
Arr(i) = s.Name
i = i + 1
End If
Next s
Set sr = ActiveSheet.Shapes.Range(Arr)
sr.Select
Selection.Delete
End Sub
查看以前的帖子
好吧,我在VBA肯定是个新手,但我正在学习。据我所知,我的代码没有理由不能正常运行,过去也是如此。尽管这个错误不断出现。我的目的是制作一个工作表,当你在主工作表中添加一个人时,它会自动更新其他工作表。代码看起来工作正常,但是它突然抛出这个错误,我不知道为什么。我四处看了看,但似乎没有一个解决方案与我的问题有丝毫关联。任何有助于找出错误所在的帮助都将不胜感激! 以下是调试器指出错误的位置: 这是正在
我需要简单地计算一张纸上的区域数。我的密码是: 但是由于某种原因,我收到错误消息“Object 不支持此属性或方法。”我不知道为什么。这段代码基本上只是从微软网站复制的。 我甚至无法使用即时窗口打印部分。 有什么快速的帮助吗?我正在使用Excel 2010。 谢了。
我有以下rails配置: 有没有人对是什么导致了这个错误有什么建议?
问题内容: 我在Surface Pro 3上安装了Rails,并在尝试查看页面后遇到此错误。我尝试了一些建议,例如使用libv8安装rubyracer,但没有帮助。 TypeError:对象不支持此属性或方法(在c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/turbolinks-2.5.3/lib/assets/javascripts/t
TypeError:对象不支持此属性或方法(在C:/RailsInstaller/Ruby2.0.0/Lib/Ruby/Gems/2.0.0/Gems/Turbolinks-2.5.3/Lib/Assets/JavaScripts/Turbolinks.js.coffee中) 这是我的Gemfile:
我是VB代码的新手,我正在尝试执行下面的代码。但是我收到一条错误消息,此行对象不支持此属性或方法 我认为我的代码没有读取< code>ReceivedTime。我正在使用微软Excel 2010。我如何修理它?