You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VBA中将选中的多个图形存储到变量以实现重复选中?

解决VBA中保存选中图形并重新选中的问题

你当前的代码存在两个关键问题:

  • 单个Shape对象只能存储一个图形,无法保存多个选中的图形集合
  • Set S = ActiveSheet.Shapes(Selection)的赋值方式错误,当选中多个图形时无法通过这种方式获取集合

要实现保存多个选中图形并后续重新选中的需求,应该使用ShapeRange对象——它专门用于存储多个图形的集合。

以下是修正后的代码:

Sub SaveAndReselectShapes()
    ' 声明用于存储选中图形集合的变量
    Dim selectedShapes As ShapeRange
    
    ' 先判断当前选中的是否为图形集合,避免报错
    If TypeName(Selection) = "ShapeRange" Then
        ' 将选中的所有图形保存到变量中
        Set selectedShapes = Selection
        
        ' 在这里执行你对图形的修改操作,比如调用你的格式化或调整尺寸的子程序
        ' Call format_select
        ' Call Resize_selected_row_Click
        
        ' 重新选中之前保存的所有图形
        selectedShapes.Select
    End If
End Sub

代码说明:

  • ShapeRange是VBA中专门处理多图形集合的对象,能完整保留选中图形的集合信息
  • 通过TypeName(Selection)做判断,确保只有选中图形时才执行后续逻辑,避免非图形选中状态下的报错
  • 修改完成后,直接调用selectedShapes.Select即可一键重新选中之前保存的所有图形

内容的提问来源于stack exchange,提问作者Mario LoCoco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 14:02:00