0
我實際上遇到了以下代碼的困難。錯誤400 - 由對象的應用程序返回的錯誤 - Tableau(Range).Group
它瀏覽我的工作表的每個形狀,並且一旦他檢查了形狀的類型,他就在數組Tableau()中添加它的ID。
線返回錯誤是:
Set Sh = ActiveSheet.Shapes.Range(Tableau).group <== it might be a detail but VBA Editor doesn't change group by Group.
這是下面的完整代碼:
Sub Select()
Dim Sh As Object
Dim Tableau()
Dim i As Integer
'Loop on the ActiveSheet Shapes
For Each Sh In ActiveSheet.Shapes
If Sh.Type <> msoFormControl Then
i = i + 1
ReDim Preserve Tableau(1 To i)
Tableau(i) = Sh.ID
End If
Next Sh
On Error GoTo Errorcatch
'Group shapes whom the ID is in the array
Set Sh = ActiveSheet.Shapes.Range(Tableau).group '<== Error 400
'Rename the group
Sh.name = "Group" & CStr(Rnd)
Sh.Copy
Exit Sub
Errorcatch:
MsgBox Err.Description
End Sub
您嘗試過'Tableau(i)= Sh.Name'嗎? – barrowc
你有'Option Base 1'設置?否則,你對'I'和你的'ReDim Preserve ...'的指望就會消失。 –
我也只是用'Sh.Name'測試它,它工作。 –