Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >VBA小技巧15:引用形状

VBA小技巧15:引用形状

作者头像
fanjy
发布于 2021-09-22 02:20:55
发布于 2021-09-22 02:20:55
8270
举报
文章被收录于专栏:完美Excel完美Excel

这是一位朋友碰到的应用场景:我们必须创建很多形状来显示每个形状所覆盖的单元格中的文本值,有时这些单元格和/或形状会移动。如果手动检查每个形状并将其重新链接到其各自的单元格引用,非常耗时。此时,VBA可以来帮助我们。

工作表示例如下图1所示。

图1

接着,我们创建一些形状(这里是文本框)并将它们放置在包含文本的单元格之上,如下图2所示。

图2

按Alt+F11打开VBE,插入一个标准模块,输入下面的代码:

Sub ShapeReference()

Dim sh As Shape

Dim varShFormula As Variant

For Each sh In ActiveSheet.Shapes

Set varShFormula = ActiveSheet.Shapes.Range(Array(sh.Name))

varShFormula.Select

Selection.Formula = "=" & sh.TopLeftCell.Address

Next sh

End Sub

代码遍历工作表中的形状,将变量varShFormula定义为正在处理的形状对象公式,然后选择该变量对象,并将位于形状左上角的单元格引用值赋给该形状公式。

注意,如果将

varShFormula.Select

Selection.Formula = "=" &sh.TopLeftCell.Address

合并成:

varShFormula.Formula = "=" &sh.TopLeftCell.Address

将返回错误。

运行ShapeReference过程,形状上显示其覆盖的单元格中的文本值,如下图3所示。

图3

我们将形状重新放置到新的位置,如下图4所示。

图4

重新运行ShapeReference过程,更新形状中的内容,结果如下图5所示。

图5

注:本技巧学习整理自www.sumproduct.com,供有兴趣的朋友参考。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-09-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
VBA技术:你需要知道的一些VBA操作形状的代码
在Excel中,可以通过功能区“插入”选项卡“插图”组中的“形状”库按钮在工作表中插入形状。可以使用形状来可视化数据、在形状中添加文本、作为执行宏代码的按钮,等等。
fanjy
2023/02/24
5K0
VBA技术:你需要知道的一些VBA操作形状的代码
VBA专题01:操作形状的VBA代码
Excel提供了多种多样的形状类型,如下图1所示。本文主要讲述VBA操作形状的基础操作。
fanjy
2019/07/19
6K0
Excel实战技巧74: 在工作表中创建搜索框来查找数据
如下图1所示,在数据区域上方放置有一个文本框,用来输入要搜索的文本,其名称重命名为“MySearch”;一个用作按钮的矩形形状,点击它开始搜索并显示结果;两个选项按钮窗体控件,用来选择在数据区域的哪列进行搜索。
fanjy
2020/02/18
17.3K1
VBA专题10-25:使用VBA操控Excel界面之一个示例程序
在前面的一系列主题中,你已经学到了很多小的修改工作簿外观的VBA代码。下面,我们将介绍一个简单的示例程序,实现下面的功能特点:
fanjy
2021/03/26
2.5K0
VBA专题10-25:使用VBA操控Excel界面之一个示例程序
谈谈使用VBA控制PPT
然而,与Excel不同的是,在PowerPoint中没有宏录制器,因而不能将操作录制成代码。但我们可以借助于Excel的宏录制器,在Excel中录制相关操作的代码,然后稍作修改,将其移植到PowerPoint中。
fanjy
2023/08/30
8200
谈谈使用VBA控制PPT
让图片自动旋转1周
在工作表中放置图片并将其命名,本示例中的图片名称为“excelperfect”。然后,打开VBE,插入一个标准模块,输入下面的代码:
fanjy
2024/03/15
1350
让图片自动旋转1周
Excel 批量插入图片的三种方式
无论是Power BI还是Excel,批量导入图片都是刚需。Power BI参考《Power BI本地图片显示最佳解决方案》,本文分享Excel批量导入图片的三种方式。
wujunmin
2025/02/10
4230
Excel 批量插入图片的三种方式
VBA实战技巧03: 精确追踪工作表中我们关注的形状
有些Excel用户喜欢在工作表中绘制形状,以实现其目的。例如,如下图1所示,绘制一个矩形方框来强调这些单元格中的数据。
fanjy
2020/03/27
1K0
Excel实战技巧78: 创建个人宏工作簿
个人宏工作簿是一个文件,可以在应用程序开启时运行其中的VBA代码,就像是运行功能区选项卡中的命令一样。创建个人宏工作簿很简单,如下所示。
fanjy
2020/05/25
3.3K0
Excel实战技巧78: 创建个人宏工作簿
VBA实战技巧34:使用VBA组织图形1
引言:本文的代码整理自mrexcel.com,一个很好的令人兴奋的示例,有兴趣的朋友可以仔细研究。
fanjy
2021/09/22
1.7K0
VBA实战技巧29:从一个工作表复制数据到另一个工作表
今天演示一个简单的例子,也是经常看到网友问的问题,将一个工作表中的数据复制到另一个工作表。
fanjy
2021/07/30
26.2K1
使用VBA复制、插入、移动、删除和控制图片2
图片能够被链接到单元格或者命名区域,这样可以使图片是动态的,当单元格中的内容变化时图片也随之变化。
fanjy
2023/08/29
3890
使用VBA复制、插入、移动、删除和控制图片2
VBA实战技巧35:使用VBA组织图形2
引言:本文的代码与昨天发表的《VBA实战技巧34:使用VBA组织图形1》一样,都整理自mrexcel.com,一个很好的令人兴奋的示例,有兴趣的朋友可以仔细研究。
fanjy
2021/09/22
1.8K0
VBA实战技巧:快速返回最后一次编辑的单元格
在有些情况下,我们可能需要快速返回到最后一次编辑的单元格。例如,最后一次编辑的单元格是单元格K112,然而我的当前单元格在单元格C1,如何定位这个最后编辑的单元格并快速返回到该单元格呢?
fanjy
2022/11/16
1K0
VBA实战技巧:快速返回最后一次编辑的单元格
Vba菜鸟教程[通俗易懂]
官方文档:https://docs.microsoft.com/zh-cn/office/vba/api/overview/language-reference 代码完成后:工具-vbaproject属性-保护-查看时锁定-密码
全栈程序员站长
2022/09/05
17.7K0
Vba菜鸟教程[通俗易懂]
VBA实战技巧20:选取不同工作表中不同单元格区域时禁止用户执行复制剪切粘贴操作
在《VBA实战技巧19:根据用户在工作表中的选择来隐藏/显示功能区中的剪贴板组》中,我们讲解了根据用户在工作表中的选择来决定隐藏或者显示功能区选项卡中的特定组的技术。在这里就要派上用场了。
fanjy
2021/03/12
2.4K0
VBA小技巧09:从非连续的单元格区域将值复制到指定单元格区域
本文将给出一段VBA代码,从非连续的单元格区域复制值并粘贴到另外指定的单元格区域。
fanjy
2021/07/30
3.5K0
VBA实战技巧02: 判断是否是我们想要执行操作的对象
在有些VBA代码解决方案中,需要先确定所选择的对象,这样才能使用合适的代码来对其进行相应的操作。本文介绍的代码可用来确定所选对象。
fanjy
2020/02/18
9100
Excel图表技巧08:让图表根据不同的值显示不同的背景色
4. 选择单元格区域E3:L15(如果因图表覆盖而不方便选择,可先将图表拖开,之后再将图表拖回来),设置条件格式规则如下图2所示。
fanjy
2021/02/05
3.5K0
Excel催化剂开源第43波-Excel选择对象Selection在.Net开发中的使用
在C#中,想引用TypeOf方法,就要引用VisualBasic的Dll,麻烦,其实在C#里,可以直接用 is 和 as 的语句来实现此类的判断。
Excel催化剂
2021/08/19
1.4K0
推荐阅读
相关推荐
VBA技术:你需要知道的一些VBA操作形状的代码
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档