如何在Excel中根据指定的单元格值自动改变形状和大小 您所在的位置:网站首页 excel怎么更改单个单元格大小 如何在Excel中根据指定的单元格值自动改变形状和大小

如何在Excel中根据指定的单元格值自动改变形状和大小

2024-05-10 16:41| 来源: 网络整理| 查看: 265

如何在Excel中根据指定的单元格值自动改变形状和大小

当我们想根据任何单元格中存在的值来改变Excel中特定形状的大小时,我们可以使用VB代码来实现。阅读本教程,了解如何在Excel中根据指定的单元格值自动改变形状和大小。这里我们将有两个部分:第一部分是只改变一个形状,另一部分是一次改变多个形状。

根据单个形状的指定单元格值,自动改变形状和尺寸

在这里,我们将把VBA代码添加到工作表中以完成我们的任务。让我们看看一个简单的过程,以了解我们如何根据单个形状的指定单元格值来自动改变形状大小。

第1步

让我们考虑一个类似于下图所示的Excel表。

如何在Excel中根据指定的单元格值自动改变形状和大小?

现在,右击工作表名称,选择查看代码,打开VB应用程序,并在文本框中输入程序,如下图所示。

代码 Private Sub Worksheet_Change(ByVal Target As Range) 'Updated BY Nirmal On Error Resume Next If Target.Row = 1 And Target.Column = 1 Then Call SizeCircle("Hollow 1", 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

Excel中形状的名称是代码中的 “Hollow 1″,”行=1 “和 “列=1 “代表A1单元格。

如何在Excel中根据指定的单元格值自动改变形状和大小?

第2步

在用Alt + Q退出VBA应用程序之前,将工作表保存为VBA模板。然后每次我们改变单元格中的值时,单元格的形状就会自动改变,如下图所示。

如何在Excel中根据指定的单元格值自动改变形状和大小?

根据多个形状的指定单元格值自动改变形状和尺寸

这里我们将在工作表中添加VBA代码来完成我们的任务。让我们看看一个简单的过程,了解我们如何根据指定的单元格值自动改变多个形状的大小。

第1步

让我们考虑一个类似于下图所示的Excel表。

现在右击工作表名称,选择查看代码,打开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 = "B1" Then Call SizeCircle("Frame 2", Val(Target.Value)) ElseIf xAddress = "C2" Then Call SizeCircle("Chord 3", 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 > 20 Then xDiameter = 20 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

在代码中,椭圆1、框架2和弦3是形状的名称,A1、B1和C2单元格分别决定它们的大小。

如何在Excel中根据指定的单元格值自动改变形状和大小?

第2步

在用Alt + Q退出VBA应用程序之前,将工作表保存为VBA模板。然后每次我们改变单元格中的值时,单元格的形状就会自动改变,如下图所示。

如何在Excel中根据指定的单元格值自动改变形状和大小?

结论

在本教程中,我们用一个简单的例子来演示如何根据指定的单元格值来自动改变单个和多个形状的形状和大小。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有