如何在Excel中基於/取決於指定的單元格值自動更改形狀大小?
如果要基於指定單元格的值自動更改形狀大小,本文將為您提供幫助。
使用VBA代碼根據指定的像元值自動更改形狀大小
以下VBA代碼可以幫助您根據當前工作表中指定的單元格值更改特定形狀的大小。 請執行以下操作。
1.右鍵單擊需要更改大小的形狀的圖紙選項卡,然後單擊 查看代碼 從右鍵單擊菜單中。
2。 在裡面 Microsoft Visual Basic for Applications 窗口,將以下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)如果要添加更多形狀,請添加行“ElseIf xAddress =“ A3”然後“和 “調用SizeCircle(“ Heart 2”,Val(Target.Value))“高於第一個”如果結束代碼中的“”行。然後根據需要更改單元格地址和形狀名稱。
3。 按 其他 + Q 同時關閉按鍵 Microsoft Visual Basic for Applications 窗口。
從現在開始,當您更改單元格A2中的值時,橢圓2形狀的大小將自動更改。 看截圖:
或更改單元格A1,A2和A3中的值,以自動調整相應形狀“橢圓1”,“笑臉3”和“心3”的大小。 看截圖:
備註:單元格值大於10時,形狀大小將不再更改。
列出並導出當前Excel工作簿中的所有形狀:
導出圖形 的效用 Excel的Kutools 幫助您快速列出當前工作簿中的所有形狀,並且可以將其全部導出到特定文件夾,如下圖所示。 立即下載並試用! (30-天免費試用)
相關文章:
最佳辦公效率工具
Kutools for Excel 解決了你的大部分問題,並將你的生產力提高了 80%
- 重用: 快速插入 複雜的公式,圖表 以及您以前使用過的任何東西; 加密單元 帶密碼 創建郵件列表 並發送電子郵件...
- 超級公式欄 (輕鬆編輯多行文本和公式); 閱讀版式 (輕鬆讀取和編輯大量單元格); 粘貼到過濾範圍...
- 合併單元格/行/列 不會丟失數據; 拆分單元格內容; 合併重複的行/列...防止細胞重複; 比較範圍...
- 選擇重複或唯一 行; 選擇空白行 (所有單元格都是空的); 超級查找和模糊查找 在許多工作簿中; 隨機選擇...
- 確切的副本 多個單元格,無需更改公式參考; 自動創建參考 到多張紙; 插入項目符號,複選框等...
- 提取文字,添加文本,按位置刪除, 刪除空間; 創建和打印分頁小計; 在單元格內容和註釋之間轉換...
- 超級濾鏡 (將過濾方案保存並應用於其他工作表); 高級排序 按月/週/日,頻率及更多; 特殊過濾器 用粗體,斜體...
- 結合工作簿和工作表; 根據關鍵列合併表; 將數據分割成多個工作表; 批量轉換xls,xlsx和PDF...
- 超過 300 項強大的功能. 支持 Office / Excel 2007-2021 和 365。支持所有語言。 在您的企業或組織中輕鬆部署。 完整功能 30 天免費試用。 60 天退款保證。

Office選項卡為Office帶來了選項卡式界面,使您的工作更加輕鬆
- 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
- 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
- 將您的工作效率提高 50%,每天為您減少數百次鼠標點擊!


#18761
網站主持人對此評論進行了最小化
0
0

#18762
網站主持人對此評論進行了最小化
即時報告
0
0

#21498
網站主持人對此評論進行了最小化
0
0

#21499
網站主持人對此評論進行了最小化
即時報告
0
0

#21576
網站主持人對此評論進行了最小化
0
0

#21577
網站主持人對此評論進行了最小化
即時報告
0
0

#21881
網站主持人對此評論進行了最小化
0
0

#21882
網站主持人對此評論進行了最小化
即時報告
0
0

#22960
網站主持人對此評論進行了最小化
0
0

#22961
網站主持人對此評論進行了最小化
即時報告
0
0

#27380
網站主持人對此評論進行了最小化
0
0

#29144
網站主持人對此評論進行了最小化
即時報告
0
0

#29469
網站主持人對此評論進行了最小化
0
0

#29470
網站主持人對此評論進行了最小化
即時報告
0
0

#36331
網站主持人對此評論進行了最小化
即時報告
0
0

#36332
網站主持人對此評論進行了最小化
即時報告
0
0
這裡還沒有評論