|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
加两句代码即可
Sub 组合图形()
Dim myshape As Shape, i%, arr()
rw = Sheets("图章参数").Range("a65536").End(xlUp).Row
For j = 3 To rw
For Each myshape In Sheet1.Shapes
If myshape.TopLeftCell.Address = Range("D" & j).Address Then
i = i + 1
ReDim Preserve arr(i - 1)
myshape.Name = Range("D" & j).Address & i
arr(i - 1) = Range("D" & j).Address & i
End If
Next
Sheet1.Shapes.Range(arr).Group
i=0 '把i=0目的是方便下次循环,否则i会一直递增
Erase arr ‘清空数组
Next
End Sub
思路基本是对的,但是第二次循环的时候,你忘了给arr重置
|
|