首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用VBA在Excel工作表中的现有形状之后粘贴Shape?

如何使用 VBA 在 Excel 工作表中的现有形状之后粘贴 Shape?

在 Excel 中,使用 VBA 可以在现有形状之后粘贴新的形状。以下代码示例将演示如何实现这一功能。

  1. 首先,创建一个 VBA 用户表单以打开一个 Excel 文件。
代码语言:vbnet
复制
Sub InsertShape()
    Dim myFile As String
    Dim myShape As Shape
    
    '选择文件
    myFile = Application.GetOpenFilename("Excel Files (*.xl*),*.xl*", _
                                    Title:="Select the Excel file to use")
    
    '打开文件
    Workbooks.Open (myFile)
    
    '选择工作表
    ActiveSheet.Select
    
    '获取现有形状数量
    Set myShape = ActiveSheet.Shapes.Count
    
    '创建新的形状
    Set myShape = ActiveSheet.Shapes.AddShape(msoShapeRectangle, _
                                              Range("A1").Left, Range("A1").Top, _
                                              Range("A1").Width, Range("A1").Height)
    
    '将新形状添加到现有形状的末尾
    ActiveSheet.Shapes.Range(Array(myShape.Name)).Select
    Selection.InsertShape Shift:=xlToRight, _
                              Type:=xlShapeRectangle
    
    '调整新形状的大小
    myShape.Height = 20
    myShape.Width = 20
    
    '保存文件
    ActiveWorkbook.Save
    
    '关闭文件
    ActiveWorkbook.Close
End Sub
  1. 保存代码,然后关闭 VBA 编辑器。
  2. 返回 Excel,打开要插入形状的工作表。
  3. 执行刚才编写的 VBA 代码:
  • 单击一个空白单元格,然后键入 =InsertShape() (不要引号)。
  • 按 Enter 键,Excel 将会弹出一个 VBA 编辑器窗口。
  • 在 VBA 编辑器窗口中,复制并粘贴上面编写的代码。
  • 按 Enter 键,Excel 将会执行代码并在工作表中插入新的形状。

现在,您应该已经成功地在现有形状之后插入了新的形状。如果需要调整形状的大小,请按照上面第 3 步中的方法调整新形状的大小。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何插入或 Visio 粘贴 Excel 工作

可以嵌入或链接现有 Excel 工作或您可以嵌入一个新 Excel 工作。 为此,请使用以下方法根据您具体情况之一。...嵌入或链接 Excel 工作 Visio 绘图,在编辑菜单上使用选择性粘贴命令 loadTOCNode(2, 'summary'); 使用 编辑 菜单上 选择性粘贴 命令粘贴到您 Visio...可以使用此方法可嵌入或链接现有Excel 工作所有单元格也可嵌入或链接现有Excel 工作某些单元格。 要这样做,请按下列步骤操作: 启动 Excel,然后打开所需工作。...适合 Visio 绘图页 Excel 工作 loadTOCNode(2, 'summary'); 插入或粘贴到您 Visio 绘图一个现有的大型 Excel 工作时, 工作部分可能会显示超出...调整工作大小之前您嵌入工作,Visio 绘图中或复制为图片在工作之前。 然后,粘贴图片以 Visio 绘图。 调整大小工作列时, 您会更改工作格式。

10.2K71
  • ChatGPT与Excel结合_编写VBA

    VBA允许用户编写自定义脚本或宏,以便通过执行一系列指令来自动完成特定任务。 使用Excel VBA宏,你可以创建和编辑工作、处理数据、执行计算、生成报表、自定义用户界面等。...你可以Excel"开发者"选项卡访问VBA编辑器,其中可以编写、修改和运行VBA宏。...”生成新表格,但“回炉再造”一遍就好,重要是学会ChatGPT与Excel结合来编写VBA宏 ---- 案例2 又比如我需求是:编写一个Excel VBA宏,将工作薄,每个工作图片,移动到A1...End Sub 运行该宏后,它会遍历工作每个工作,并将每个作图片移动到A1单元格位置。移动图片之后,会弹出一个提示框显示操作已完成。...End Sub 运行该宏后,它会遍历当前Excel工作簿每个工作,并删除每个工作所有图片。删除图片之后,会弹出一个提示框显示操作已完成。

    62110

    ChatGPT与Excel结合_编写VBA

    VBA允许用户编写自定义脚本或宏,以便通过执行一系列指令来自动完成特定任务。 使用Excel VBA宏,你可以创建和编辑工作、处理数据、执行计算、生成报表、自定义用户界面等。...你可以Excel"开发者"选项卡访问VBA编辑器,其中可以编写、修改和运行VBA宏。...”生成新表格,但“回炉再造”一遍就好,重要是学会ChatGPT与Excel结合来编写VBA宏 ---- 案例2 又比如我需求是:编写一个Excel VBA宏,将工作薄,每个工作图片,移动到A1...End Sub 运行该宏后,它会遍历工作每个工作,并将每个作图片移动到A1单元格位置。移动图片之后,会弹出一个提示框显示操作已完成。...End Sub 运行该宏后,它会遍历当前Excel工作簿每个工作,并删除每个工作所有图片。删除图片之后,会弹出一个提示框显示操作已完成。

    49920

    VBA技术:你需要知道一些VBA操作形状代码

    标签:VBAShape对象 本文介绍使用VBA创建和操控形状知识。 Excel,可以通过功能区“插入”选项卡“插图”组形状”库按钮工作插入形状。...可以使用形状来可视化数据、形状添加文本、作为执行宏代码按钮,等等。 使用AddShape方法创建形状使用VBAExcel创建形状对象,必须调用AddShape方法。...该方法有5个必需参数:参数Type,想要生成形状类型名;参数Left,放置到工作形状左侧位置;参数Top,放置到工作形状顶部位置;参数Width,形状宽度;参数Height,形状高度...下面的VBA代码展示了如何创建2个形状并将它们存储变量以便后面引用。..., _ Range("B1").Left, _ Range("B10").Top, _ 100, 50) End Sub 方法2:可以工作根据自己喜好手动定位形状,并使用VBA

    4.6K20

    EXCEL VBA开始,入门业务自动化编程

    [开发工具]选项卡包含「宏安全性」等图标。但是,默认安装Excel是无法直接使用[开发工具]选项卡。因此,我们先说明一下如何找到[开发工具]选项卡。...图15 之后Excel菜单栏中就出现「拷贝粘贴这个图标了(图17)。...之后开始录制宏,选择之前拷贝粘贴区域,然后按键盘上[Delete]键。 单击「录制结束」。「插入」菜单处选择「形状」,然后选中「圆角矩形」。将按钮文字描述为「删除」。...点击[拷贝粘贴]按钮,就是图23样子;点击[删除]按钮,就是图24样子。 图23 图24 保存包含宏命令Excel工作 下面我们来讲一下如何保存包含宏Excel文件。...本篇,我们解说了如何创建一个简单宏,一直到如何让宏真正地工作起来。 由于是第一篇,所以内容上尽量简单,我想大家应该都能充分理解吧。 下一篇,我们会开始讲解Excel VBA基础知识。

    17.6K111

    Excel公式技巧17: 使用VLOOKUP函数多个工作查找相匹配值(2)

    我们给出了基于多个工作给定列匹配单个条件来返回值解决方案。本文使用与之相同示例,但是将匹配多个条件,并提供两个解决方案:一个是使用辅助列,另一个不使用辅助列。 下面是3个示例工作: ?...图3:工作Sheet3 示例要求从这3个工作从左至右查找,返回Colour列为“Red”且“Year”列为“2012”对应Amount列值,如下图4所示第7行和第11行。 ?...图4:主工作Master 解决方案1:使用辅助列 可以适当修改上篇文章给出公式,使其可以处理这里情形。首先在每个工作数据区域左侧插入一个辅助列,该列数据为连接要查找两个列数据。...16:使用VLOOKUP函数多个工作查找相匹配值(1)》。...解决方案2:不使用辅助列 首先定义两个名称。注意,定义名称时,将活动单元格放置工作Master第11行。

    13.9K10

    Excel公式技巧16: 使用VLOOKUP函数多个工作查找相匹配值(1)

    某个工作表单元格区域中查找值时,我们通常都会使用VLOOKUP函数。但是,如果在多个工作查找值并返回第一个相匹配值时,可以使用VLOOKUP函数吗?本文将讲解这个技术。...最简单解决方案是每个相关工作使用辅助列,即首先将相关单元格值连接并放置辅助列。然而,有时候我们可能不能在工作使用辅助列,特别是要求在被查找左侧插入列时。...因此,本文会提供一种不使用辅助列解决方案。 下面是3个示例工作: ? 图1:工作Sheet1 ? 图2:工作Sheet2 ?...图3:工作Sheet3 示例要求从这3个工作从左至右查找,返回Colour列为“Red”对应Amount列值,如下图4所示。 ?...B:B"}),$A3) INDIRECT函数指令Excel将这个文本字符串数组元素转换为单元格引用,然后传递给COUNTIF函数,同时单元格A3值作为其条件参数,这样上述公式转换成: {0,1,3

    24.2K21

    常见复制粘贴VBA是怎么做(续)

    上文参见:常见复制粘贴VBA是怎么做>>> 标签:VBA 使用Worksheet.Paste方法复制粘贴 Worksheet.Paste(Excel VBA没有Range.Paste方法)某种程度上与...Worksheet.Activate方法,主要目的是激活相关工作,等价于单击Excel界面下方工作选项卡。...注意,这两个参数与Excel“复制图片”对话框显示参数完全相同。 VBA,“复制图片”对话框每个选项都有对应VBA设置值。...18.Worksheet.Copy方法,将工作复制到其他位置。 19.Worksheet.PasteSpecial方法,使用指定格式将剪贴板内容粘贴工作上。...小结 现在,你应该了解了Excel复制和粘贴单元格和单元格区域时可以使用最重要VBA方法。

    10.3K30

    合并拆分 Excel?Python、VBA轻松自动化

    最终成品 合并 EXCEL VBA 实现合并 不套路,下面直接放出 VBA 代码(来源于网络,经过了我修改): Sub 合并当前目录下所有工作簿全部工作() Dim MyPath, MyName,...如下:" & Chr(13) & WbN, vbInformation, "提示" End Sub 看不懂没关系,不用再学 VBA,直接跑就完事儿了。那么该如何使用呢?...如下目录中放着 3 个待合并 EXCEL ,每个数据不同; ? 新建一个 EXCEL 文件后打开它,用于存放合并后数据; ? 通过快捷键 Alt + F11 打开 VBA 界面; ?...打开Sheet1,将上面的代码复制粘贴到其中,按 F5 运行; ? 即将同目录下其他 3 个 EXCEL 文件数据合并至此; ?...那么如果是要分配工作,比如把一个大按行数分成多份小如何实现呢?我们还是先来看看 VBA 版本。

    2.3K20

    Excel催化剂开源第43波-Excel选择对象Selection.Net开发使用

    Excel二次开发有一极大优势所在,可以结合用户交互进行程序运行,大量用户交互,都是从选择对象开始,用户选择了单元格区域、图形、图表等对象,之后再进行程序代码加工处理,生成用户所需最终结果...所以熟练处理选择对象,尤其关键,而在VBA使用方法,来到.Net特别是C#语言下,就需要另外代码处理,希望此篇分享给VBA转VSTO朋友们带来一些帮助指引。...VBA,判断一个Selection对象是什么类型方法如下: Sub test() Dim sel Set sel = Selection If TypeOf sel Is Range Then...Debug.Print 1 End If End Sub C#,想引用TypeOf方法,就要引用VisualBasicDll,麻烦,其实在C#里,可以直接用 is 和 as 语句来实现此类判断...此代码,用户选定Selection对象,有三类 单元格区域,类型为:Range,只获取单元格区域下形状。 多个形状,类型为:DrawingObjects,获取选中多个形状

    1.3K20

    (ExcelVBA编程入门范例)

    大家好,又见面了,我是你们朋友全栈君。 很喜爱VBA,喜欢使用她对Excel操作实现所需功能,更喜欢使用VBA控制Excel以及实现结果后那种感觉。...VBE编辑器 此外,您也可以使用下面三种方式打开VBE编辑器: ■ 在任一工作标签上单击鼠标右键,弹出菜单中选择“查看代码”,则可进入VBE编辑器访问该工作代码模块,如图00-03...VBE编辑器代码模块输入VBA代码,通常有以下几种方法: ■ 手工键盘输入; ■ 使用宏录制器,即选择菜单“工具——宏——录制新宏”命令,将所进行操作自动录制成宏代码; ■ 复制/粘贴代码...,即将现有的代码复制后,粘贴到相应代码模块; ■ 导入代码模块,即在VBE编辑器中选择菜单“文件——导入文件”或在“工程资源管理器”任一对象上右击鼠标选择菜单“导入文件”,选择相应代码文件导入...■ 可以按F5键直接运行光标所在位置子程序。 执行程序后,必须在Excel工作查看所得到结果。

    4.2K20

    常见复制粘贴VBA是怎么做

    标签:VBA 引言:本文学习整理自powerspreadsheets.com,非常清晰透彻地讲解如何使用VBA进行复制粘贴操作。...复制粘贴可能是Excel中最常见操作,不然Microsoft怎么会把它们放置最显眼显顺手位置。当然,使用Excel VBA时,复制操作单元格区域是一项基本技能。...因此,无论哪个Excel工作簿处于活动状态,引用都能正常工作Excel功能区复制命令 使用VBA代码复制单元格区域之前,看看Excel功能区“复制”按钮命令。...Excel手工复制单元格区域操作时,使用Ctrl+C快捷键,该单元格区域被复制到剪贴板。VBA使用Range.Copy方法做同样事情。...示例1:复制单元格区域到剪贴板 首先,让我们看看如何将示例工作和单价)所有项目复制到剪贴板。

    11.8K20

    VBA专题10-23:使用VBA操控Excel界面之添加动态菜单

    学习Excel技术,关注微信公众号: excelperfect 本系列后面的示例程序,你将会看到如何使用项目和带图像库控件通过getItemLabel和getItemImage回调属性引用VBA...下面介绍一个简单使用动态菜单控件示例,工作簿为三个工作(名为Data,Analysis,Reports)每个显示不同菜单。 1. 创建一个新工作簿,将其保存为启用宏工作簿。 2....下面展示了选择不同工作菜单内容: 640.gif 保留自定义复选框勾选条件 在上面的示例XML和VBA代码,当用户工作Data单击动态菜单复选框后,复选框会相应地显示勾选或者取消勾选...下面,我们修改现有VBA代码来实现此目的(加黑代码是在上面代码增加代码): 1....如果要在用户关闭并重新打开该文件之后保留该复选框状态,那么可能要在隐藏工作或者Windows注册存储其状态。

    6.1K20

    VBA实战技巧03: 精确追踪工作我们关注形状

    有些Excel用户喜欢工作绘制形状,以实现其目的。例如,如下图1所示,绘制一个矩形方框来强调这些单元格数据。 ?...图1 我们可以使用下面的代码来完成图1矩形自动绘制: Sub AddRedBox() Dim shpBox As Shape '以所选单元格为基准绘制红色矩形 On Error...如果你想移除工作添加所有红色矩形框,可以使用下面的代码: Sub RemoveAllShapes() Dim shp As Shape '遍历当前工作所有形状 '如果不是图表...然而,在有些情形下,工作可能存在除红色矩形框之外其他形状,而我们并不想删除这些形状。实现这种情形一个技巧是,添加这些形状时重命名并在其名字后添加指定字符作为标记。...End Sub 这样,就可以很方便地使用VBA代码找到所有的红色矩形框并进行相应操作了。

    94910

    Python与Microsoft Office

    为了解决这个问题,Excel录制了一个宏,并执行了一个仅粘贴公式选择性粘贴命令。...使用生成代码,我解决了要在Python获得公式,只需执行以下操作: formula=sh.Cells(row, col).Formula 如果需要改变所在工作,怎么办?...下面是ExcelVBA代码: Sub Macro1() ' ' Macro1 Macro ' Sheets("Sheet2").Select End Sub 从这段代码,发现需要调用sheets...对象“sheets”方法,稍微修改之后,通过执行以下操作使其Python工作: sheet2 = ss.Sheets(“Sheet2”) 现在,我们工作簿第二个工作上有了一个句柄。...如果想编辑或检索值,只需将上面使用相同方法加在sheet2实例(即sheet2.Cells(1,1).Value)即可。原程序最后两行将关闭工作,然后退出整个Excel实例。

    2.6K20
    领券