如何在Excel中基于/取决于指定的单元格值自动更改形状大小?

网友投稿 194 2023-12-10

如何在Excel中基于/取决于指定的单元格值自动更改形状大小?

如果要基于指定单元格的值自动更改形状大小,本文可以为您提供帮助。

如何在Excel中基于/取决于指定的单元格值自动更改形状大小?

使用VBA代码根据指定的像元值自动更改形状大小

使用VBA代码根据指定的像元值自动更改形状大小
惊人的! 在 Excel 中使用高效的选项卡,如 Chrome、Firefox 和 Safari! 每天节省50%的时间,并减少数千次鼠标单击!

以下VBA代码可以帮助您根据当前工作表中指定的单元格值更改特定形状的大小。 请执行以下操作。

1.右键单击需要更改大小的形状的图纸选项卡,然后单击 查看代码 从右键单击菜单中。

2.在 Microsoft Visual Basic应用程序 窗口,将以下VBA代码复制并粘贴到“代码”窗口中。

VBA代码:根据Excel中指定的单元格值自动更改形状大小

Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Target.Row = 2 And Target.Column = 1 Then Call SizeCircle("Oval 2", Val(Target.Value)) End If End Sub Sub SizeCircle(Name As String, Diameter) Dim xCenterX As Single Dim xCenterY As Single Dim xCircle As Shape Dim xDiameter As Single On Error GoTo ExitSub xDiameter = Diameter If xDiameter > 10 Then xDiameter = 10 If xDiameter < 1 Then xDiameter = 1 Set xCircle = ActiveSheet.Shapes(Name) With xCircle xCenterX = .Left + (.Width / 2) xCenterY = .Top + (.Height / 2) .Width = Application.CentimetersToPoints(xDiameter) .Height = Application.CentimetersToPoints(xDiameter) .Left = xCenterX - (.Width / 2) .Top = xCenterY - (.Height / 2) End With ExitSub: End Sub
Copy

备注:在代码中,“椭圆形2”是形状名称,您将更改其大小。 和 行= 2, 列= 1 表示形状“椭圆2”的大小将随着A2中的值而改变。 请根据需要更改它们。

若要根据不同的像元值自动调整多个形状的大小,请应用以下VBA代码。

VBA代码:根据Excel中不同指定单元格的值自动调整多个形状的大小

Private Sub Worksheet_Change(ByVal Target As Range) Dim xAddress As String On Error Resume Next If Target.CountLarge = 1 Then xAddress = Target.Address(0, 0) If xAddress = "A1" Then Call SizeCircle("Oval 1", Val(Target.Value)) ElseIf xAddress = "A2" Then Call SizeCircle("Smiley Face 3", Val(Target.Value)) ElseIf xAddress = "A3" Then Call SizeCircle("Heart 2", Val(Target.Value)) End If End If End Sub Sub SizeCircle(Name As String, Diameter) Dim xCenterX As Single Dim xCenterY As Single Dim xCircle As Shape Dim xDiameter As Single On Error GoTo ExitSub xDiameter = Diameter If xDiameter > 10 Then xDiameter = 10 If xDiameter < 1 Then xDiameter = 1 Set xCircle = ActiveSheet.Shapes(Name) With xCircle xCenterX = .Left + (.Width / 2) xCenterY = .Top + (.Height / 2) .Width = Application.CentimetersToPoints(xDiameter) .Height = Application.CentimetersToPoints(xDiameter) .Left = xCenterX - (.Width / 2) .Top = xCenterY - (.Height / 2) End With ExitSub: End Sub
Copy

笔记:

1)在代码中,“椭圆形1“”笑脸3“和”心脏3”是形状的名称,您将自动更改其大小。 和 A1, A2A3 是您将根据其自动调整形状大小的值的单元格。
2)如果要添加更多形状,请添加行“ElseIf xAddress =“ A3”然后“而 “调用SizeCircle(“ Heart 2”,Val(Target.Value))“在第一个之上”结束如果代码中的“”行。然后根据需要更改单元格地址和形状名称。

3。 按 其他 + Q 同时关闭按键 Microsoft Visual Basic应用程序 窗口。

从现在开始,当您更改单元格A2中的值时,椭圆2形状的大小将自动更改。 看截图:

或更改单元格A1,A2和A3中的值,以自动调整相应形状“椭圆1”,“笑脸3”和“心3”的大小。 看截图:

备注:单元格值大于10时,形状大小将不再更改。

列出并导出当前Excel工作簿中的所有形状:

导出图形 实用程序 Kutools for Excel 帮助您快速列出当前工作簿中的所有形状,并且可以将其全部导出到特定文件夹,如下图所示。 立即下载并试用! (30-天免费试用)

相关文章: 如何在Excel中将鼠标悬停在特定形状上? 如何在Excel中使用透明背景色填充形状? 如何根据Excel中指定的单元格值隐藏或取消隐藏某个形状?

最佳办公生产力工具

将小时转化为分钟 Kutools for Excel!

准备好增强您的 Excel 任务了吗? 利用的力量 Kutools for Excel - 您终极的节省时间的工具。 简化复杂的任务并像专业人士一样浏览数据。 以闪电般的速度体验 Excel!

为什么需要 Kutools for Excel

🛠️  超过 300 项强大功能: Kutools 包含 300 多项高级功能,可简化您在 1500 多种场景中的工作。

📈  卓越的数据处理能力:合并单元格、删除重复项并执行高级数据转换 - 所有这些都不费吹灰之力!

⏱️  高效的批量操作:当你可以聪明地工作时,为什么还要付出额外的努力呢? 轻松批量导入、导出、组合和调整数据。

📊  可定制的图表和报告:访问各种附加图表并生成富有洞察力的报告。

🗄️  强大的导航窗格:通过强大的列管理器、工作表管理器和自定义收藏夹获得优势。

📝  七种类型的下拉列表:通过各种功能和类型的下拉列表使数据输入变得轻而易举。

🎓  用户友好:对于初学者来说轻而易举,对于专家来说是一个强大的工具。

立即下载,与 Excel 一起穿越时空!

阅读更多 免费下载... 采购... 
Office Tab 为 Office 带来选项卡式界面,让您的工作更轻松
在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。 每天将您的工作效率提高50%,并减少数百次鼠标单击!
阅读更多 免费下载... 采购... 

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:如何在Excel中双击自动在单元格中添加/输入当前日期/时间?
下一篇:如何自动复制和粘贴当前工作表中的单元格或在Excel中从一个工作表到另一个工作表?
相关文章