Как автоматически изменить размер фигуры на основе/в зависимости от значения указанной ячейки в Excel?
Если вы хотите автоматически изменять размер фигуры на основе значения указанной ячейки, эта статья может вам помочь.
Автоматическое изменение размера фигуры на основе значения указанной ячейки с помощью кода VBA
Автоматическое изменение размера фигуры на основе значения указанной ячейки с помощью кода 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
Примечание: В коде «Oval 2» — это имя фигуры, размер которой вы будете изменять. А Row = 2, Column = 1 означает, что размер фигуры «Oval 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
Примечания:
3. Нажмите клавиши Alt + Q одновременно, чтобы закрыть окно Microsoft Visual Basic for Applications.
Теперь, когда вы измените значение в ячейке A2, размер фигуры Oval 2 будет автоматически изменен. См. скриншот:
Или измените значения в ячейках A1, A2 и A3, чтобы автоматически изменить размер соответствующих фигур «Oval 1», «Smiley Face 3» и «Heart 3». См. скриншот:
Примечание: Размер фигуры больше не будет изменяться, когда значение ячейки станет больше 10.
Список и экспорт всех фигур в текущей книге Excel:
Утилита Экспорт диаграммы Kutools для Excel помогает быстро перечислить все фигуры в текущей книге, и вы можете экспортировать их все сразу в определенную папку, как показано на скриншоте ниже. Скачайте и попробуйте прямо сейчас! (30-дневная бесплатная пробная версия)
Связанные статьи:
- Как добавить подсказку при наведении курсора мыши на определенную фигуру в Excel?
- Как заполнить фигуру прозрачным цветом фона в Excel?
- Как скрыть или показать определенную фигуру на основе значения указанной ячейки в Excel?
Лучшие инструменты для повышения продуктивности работы с Office
Ускорьте работу в Excel с Kutools для Excel и ощутите новую степень эффективности. Kutools для Excel предлагает более300 расширенных функций для повышения продуктивности и экономии времени. Нажмите здесь, чтобы выбрать нужную вам функцию...
Office Tab добавляет вкладки в Office и делает вашу работу намного проще
- Включите редактирование и чтение с вкладками в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна, а не в отдельных окнах.
- Увеличьте свою продуктивность на50% и сократите сотни лишних кликов мышью каждый день!