如果我选择一个形状(如图表或文本框),如何在VBA中重命名它?我有一个很好的小的子和PowerPoint中的形式,这样做:如何在Excel中重命名所选形状
Sub ShapeName()
If Not ActiveWindow.Selection Is Nothing Then
If ActiveWindow.Selection.Type = ppSelectionShapes Then
NameForm.NameBox.Text = ActiveWindow.Selection.ShapeRange.Name
NameForm.Show
If Not NameForm.bCancel Then
ActiveWindow.Selection.ShapeRange.Name = NameForm.NameBox.Text
End If
End If
End If
End Sub
我怎样才能在Excel中实现相同? ActiveWindow.Selection对象是非常不同的。我无法解决如何从选区导航到选定的形状。如果选择的图形是一个图表对象,那么源单元格也会被选中,我想忽略这些图形并重命名形状。
如果您在Excel中选择一个图表对象(无论如何,2007+),选择通常是一个查询rt元素(如图表区域),而不是实际的图表对象 - 除非您按Ctrl并单击它。尽管在名称框中输入新名称会更容易。 – Rory
按Ctrl +点击似乎没有做出与正常点击大不相同的任何操作,并且似乎不可能在名称框中对其进行重命名,但在尝试给它起一个新名称后,它仍称为“图表1”。我真正想做的是在Excel图表和PowerPoint图形之间建立关联,因此我可以编写一些VBA来遍历工作簿,并将所有图表复制到现有图表的顶部。在Excel中给他们起个名字是非常棘手的部分,因为我想通过一个按钮来向用户公开这个功能,以重命名当前选中的形状。 – PhilHibbs
点击图表,然后运行'msgbox typename(selection)';现在Ctrl +单击并运行相同的代码。如果你只对图表感兴趣,你可以在错误处理程序中使用一个简单的'set cht = activechart'。我承认我忘记了你不能重新命名图表。 – Rory