如何在Excel中基于/取決于指定的單元格值自動更改形狀大小?
如果要基于指定單元格的值自動更改形狀大小,本文可以為您提供幫助。
使用VBA代碼根據指定的像元值自動更改形狀大小
使用VBA代碼根據指定的像元值自動更改形狀大小
驚人的! 在 Excel 中使用高效的選項卡,如 Chrome、Firefox 和 Safari!
每天節(jié)省50%的時間,并減少數千次鼠標單擊!
以下VBA代碼可以幫助您根據當前工作表中指定的單元格值更改特定形狀的大小。 請執(zhí)行以下操作。
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
備注:在代碼中,“橢圓形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
筆記:
1)在代碼中,“橢圓形1“”笑臉3“和”心臟3”是形狀的名稱,您將自動更改其大小。 和 A1, A2 和A3 是您將根據其自動調整形狀大小的值的單元格。
2)如果要添加更多形狀,請?zhí)砑有小?strong style="color: blue;">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 - 您終極的節(jié)省時間的工具。 簡化復雜的任務并像專業(yè)人士一樣瀏覽數據。 以閃電般的速度體驗 Excel!
為什么需要 Kutools for Excel
??? 超過 300 項強大功能: Kutools 包含 300 多項高級功能,可簡化您在 1500 多種場景中的工作。

?? 卓越的數據處理能力:合并單元格、刪除重復項并執(zhí)行高級數據轉換 - 所有這些都不費吹灰之力!
?? 高效的批量操作:當你可以聰明地工作時,為什么還要付出額外的努力呢? 輕松批量導入、導出、組合和調整數據。
?? 可定制的圖表和報告:訪問各種附加圖表并生成富有洞察力的報告。
??? 強大的導航窗格:通過強大的列管理器、工作表管理器和自定義收藏夾獲得優(yōu)勢。
?? 七種類型的下拉列表:通過各種功能和類型的下拉列表使數據輸入變得輕而易舉。
?? 用戶友好:對于初學者來說輕而易舉,對于專家來說是一個強大的工具。
立即下載,與 Excel 一起穿越時空!
閱讀更多
免費下載... 采購...
Office Tab 為 Office 帶來選項卡式界面,讓您的工作更輕松
在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發(fā)布者,Access,Visio和Project。
在同一窗口的新選項卡中而不是在新窗口中打開并創(chuàng)建多個文檔。
每天將您的工作效率提高50%,并減少數百次鼠標單擊!