Jak automaticky měnit velikost tvaru na základě / v závislosti na zadané hodnotě buňky v aplikaci Excel?
Pokud chcete automaticky změnit velikost tvaru na základě hodnoty určené buňky, může vám tento článek pomoci.
Automaticky měnit velikost tvaru na základě zadané hodnoty buňky pomocí kódu VBA
Automaticky měnit velikost tvaru na základě zadané hodnoty buňky pomocí kódu VBA
Následující kód VBA vám pomůže změnit určitou velikost tvaru na základě zadané hodnoty buňky v aktuálním listu. Postupujte prosím následovně.
1. Klikněte pravým tlačítkem na záložku listu s tvarem, který potřebujete změnit, a poté klikněte Zobrazit kód z nabídky pravého tlačítka myši.
2. V Microsoft Visual Basic pro aplikace zkopírujte a vložte následující kód VBA do okna Kód.
Kód VBA: Automatická změna velikosti tvaru na základě zadané hodnoty buňky v aplikaci 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
Poznámka: V kódu, “Oválné 2„Je název tvaru, kterým změníte jeho velikost. A Řádek = 2, Sloupec = 1 znamená, že velikost tvaru „Oval 2“ bude změněna s hodnotou v A2. Změňte je prosím podle potřeby.
Pro automatickou změnu velikosti více tvarů na základě různých hodnot buněk použijte níže uvedený kód VBA.
Kód VBA: Automatická změna velikosti více tvarů na základě hodnoty různých zadaných buněk v aplikaci 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
Poznámky:
3. lis Další + Q současně zavřete Microsoft Visual Basic pro aplikace okno.
Od této chvíle, když změníte hodnotu v buňce A2, velikost tvaru Oval 2 se automaticky změní. Viz snímek obrazovky:
Nebo změňte hodnoty v buňce A1, A2 a A3 a automaticky změňte velikost odpovídajících tvarů „Ovál 1“, „Veselý obličej 3“ a „Srdce 3“. Viz snímek obrazovky:
Poznámka: Velikost tvaru se již nezmění, pokud je hodnota buňky větší než 10.
Seznam a export všech tvarů v aktuálním sešitu aplikace Excel:
Projekt Exportovat grafiku užitečnost Kutools pro Excel vám pomůže rychle zobrazit seznam všech tvarů v aktuálním sešitu a můžete je všechny exportovat do určité složky najednou, jak ukazuje následující snímek obrazovky. Stáhněte si a vyzkoušejte to hned! (30denní bezplatná trasa)
Související články:
- Jak přidat myš přes špičku do určitého tvaru v aplikaci Excel?
- Jak vyplnit tvar průhlednou barvou pozadí v aplikaci Excel?
- Jak skrýt nebo odkrýt určitý tvar na základě zadané hodnoty buňky v aplikaci Excel?
Nejlepší nástroje pro produktivitu v kanceláři
Rozšiřte své dovednosti Excel pomocí Kutools pro Excel a zažijte efektivitu jako nikdy předtím. Kutools for Excel nabízí více než 300 pokročilých funkcí pro zvýšení produktivity a úsporu času. Kliknutím sem získáte funkci, kterou nejvíce potřebujete...
Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci
- Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
- Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
- Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!