
如何在Excel中基于/取決于指定的單元格值自動更改形狀大?。?/h2>
如果要基于指定單元格的值自動更改形狀大小,本文可以為您提供幫助。
使用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 NextIf Target.Row = 2 And Target.Column = 1 ThenCall SizeCircle("Oval 2", Val(Target.Value))End IfEnd SubSub SizeCircle(Name As String, Diameter)Dim xCenterX As SingleDim xCenterY As SingleDim xCircle As ShapeDim xDiameter As SingleOn Error GoTo ExitSubxDiameter = DiameterIf xDiameter > 10 Then xDiameter = 10If xDiameter < 1 Then xDiameter = 1Set xCircle = ActiveSheet.Shapes(Name)With xCirclexCenterX = .Left + (.Width / 2)xCenterY = .Top + (.Height / 2).Width = Application.CentimetersToPoints(xDiameter).Height = Application.CentimetersToPoints(xDiameter).Left = xCenterX - (.Width / 2).Top = xCenterY - (.Height / 2)End WithExitSub:End SubCopy備注:在代碼中,“橢圓形2”是形狀名稱,您將更改其大小。 和 行= 2, 列= 1 表示形狀“橢圓2”的大小將隨著A2中的值而改變。 請根據需要更改它們。
若要根據不同的像元值自動調整多個形狀的大小,請應用以下VBA代碼。
VBA代碼:根據Excel中不同指定單元格的值自動調整多個形狀的大小
Private Sub Worksheet_Change(ByVal Target As Range)Dim xAddress As StringOn Error Resume NextIf Target.CountLarge = 1 ThenxAddress = Target.Address(0, 0)If xAddress = "A1" ThenCall SizeCircle("Oval 1", Val(Target.Value))ElseIf xAddress = "A2" ThenCall SizeCircle("Smiley Face 3", Val(Target.Value))ElseIf xAddress = "A3" ThenCall SizeCircle("Heart 2", Val(Target.Value))End IfEnd IfEnd SubSub SizeCircle(Name As String, Diameter)Dim xCenterX As SingleDim xCenterY As SingleDim xCircle As ShapeDim xDiameter As SingleOn Error GoTo ExitSubxDiameter = DiameterIf xDiameter > 10 Then xDiameter = 10If xDiameter < 1 Then xDiameter = 1Set xCircle = ActiveSheet.Shapes(Name)With xCirclexCenterX = .Left + (.Width / 2)xCenterY = .Top + (.Height / 2).Width = Application.CentimetersToPoints(xDiameter).Height = Application.CentimetersToPoints(xDiameter).Left = xCenterX - (.Width / 2).Top = xCenterY - (.Height / 2)End WithExitSub:End SubCopy筆記:
1)在代碼中,“橢圓形1“”笑臉3“和”心臟3”是形狀的名稱,您將自動更改其大小。 和 A1, A2 和A3 是您將根據其自動調整形狀大小的值的單元格。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

