Excel 错误1004 VBA:如何设置单元格范围内形状的文本
我想设置单元格范围内形状的文本Excel 错误1004 VBA:如何设置单元格范围内形状的文本,excel,vba,Excel,Vba,我想设置单元格范围内形状的文本 在下面的代码中,我在我的activesheet中循环浏览形状,如果给定的范围masqueA与topleftcell相交,则选择此形状并设置此选择的文本 Sub numShape() Dim masqueA As Range Set masqueA = Range("b33:l42") cpt = 1 For Each shapeTemp In ActiveSheet.Shapes If Not Intersect(Range("masqueA"), s
在下面的代码中,我在我的
activesheet
中循环浏览形状,如果给定的范围masqueA
与topleftcell
相交,则选择此形状并设置此选择的文本
Sub numShape()
Dim masqueA As Range
Set masqueA = Range("b33:l42")
cpt = 1
For Each shapeTemp In ActiveSheet.Shapes
If Not Intersect(Range("masqueA"), shapeTemp.TopLeftCell) Is Nothing Then
shapeTemp.Select
Selection.TextFrame.Characters.Text = "cpt"
cpt = cpt + 1
End If
Next shapeTemp
End Sub
但是我有一个错误:运行时错误'1004':应用程序定义的错误或对象定义的错误
是否有人能向我解释我为什么会有这个错误以及如何修复它。
顺便问一下,我的代码正在做我想做的事情吗
谢谢 masqueA
是一个范围,而不是定义的名称。如果要按名称引用范围,请使用range(“b33:l42”).name=“masqueA”
和range(“masqueA”)
原样使用Intersect(masqueA,shapeTemp.TopLeftCell)
Sub numShape()
Dim masqueA As Range
Set masqueA = Range("b33:l42")
cpt = 1
For Each shapeTemp In ActiveSheet.Shapes
If Not Intersect(masqueA, shapeTemp.TopLeftCell) Is Nothing Then
shapeTemp.TextFrame.Characters.Text = "cpt"
cpt = cpt + 1
End If
Next shapeTemp
End Sub
我明白你的意思,我按照你的建议做了改变。但是我仍然有同样的错误,我不知道发生了什么。没有理由选择该形状。我修改了我的答案。如果您将工作簿链接到我,我将查看它。感谢您删除选择:)请始终告诉我们产生错误的行。有几十种可能会发生这种错误。不得不猜测并不能让人们更容易回答。也就是说,cpt
的目的是什么?你想让每个形状都准确地表示cpt,还是希望它们表示“1”、“2”、“3”…
?是的,我确实希望形状表示1,2,3。。。它确实显示了错误产生的位置,或者我不知道在哪里查看。在这种情况下,您需要执行Selection.TextFrame.Characters.Text=“”&cpt&
(如果您希望引号显示,则每个引号有4个。否则它只是。Text=cpt
)。关于错误,这有点让人困惑。编译项目(从调试菜单)时会发生什么情况?@Inarion我终于解决了我的问题。我在错误的工作表中执行此操作。谢谢你抽出时间!