Макрос VBA, который делит число из первой ячейки выделенного диапазона на количество ячеек и заполняет их полученным значением.

Макрос VBA, который делит значение из первой ячейки на количество выделенных ячеек.

 

 

Вот пример VBA макроса для Excel, который выполняет описанные действия:

VBA:


Sub DivideAndDistribute()
    Dim selectedRange As Range
    Dim cell As Range
    Dim firstCellValue As Double
    Dim dividedValue As Double
    Dim cellCount As Integer
   
    ‘ Проверяем, выделен ли диапазон
    On Error Resume Next
    Set selectedRange = Selection
    On Error GoTo 0
   
    If selectedRange Is Nothing Then
        MsgBox «Выделите диапазон ячеек.», vbExclamation
        Exit Sub
    End If
   
    ‘ Проверяем, является ли первая ячейка числом
    If Not IsNumeric(selectedRange.Cells(1, 1).Value) Then
        MsgBox «Первая ячейка диапазона должна содержать число.», vbExclamation
        Exit Sub
    End If
   
    ‘ Получаем значение первой ячейки
    firstCellValue = CDbl(selectedRange.Cells(1, 1).Value)
   
    ‘ Получаем количество ячеек в диапазоне
    cellCount = selectedRange.Cells.Count
   
    ‘ Делим значение на количество ячеек
    dividedValue = firstCellValue / cellCount
   
    ‘ Очищаем диапазон
    selectedRange.ClearContents
   
    ‘ Записываем полученное значение во все ячейки
    For Each cell In selectedRange
        cell.Value = dividedValue
    Next cell
   
    MsgBox «Значение успешно распределено по ячейкам.», vbInformation
End Sub

 


Как использовать:
1. Откройте Excel и нажмите `Alt + F11`, чтобы открыть редактор VBA.
2. Вставьте новый модуль через `Insert > Module`.
3. Скопируйте и вставьте приведенный выше код в модуль.
4. Закройте редактор VBA.
5. Вернитесь в Excel, выделите диапазон ячеек и запустите макрос через `Alt + F8` (выберите макрос `DivideAndDistribute` и нажмите `Run`).

Что делает макрос:
1. Проверяет, выделен ли диапазон.
2. Проверяет, является ли значение первой ячейки числом.
3. Делит значение первой ячейки на количество выделенных ячеек.
4. Очищает выделенный диапазон.
5. Записывает результат деления поровну во все ячейки выделенного диапазона.

Если у вас возникнут вопросы или потребуется доработка, пишите в комментариях.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Translate »

Политика конфиденциальности

Наш сайт использует файлы cookies, чтобы улучшить работу и повысить эффективность сайта. Продолжая работу с сайтом, вы соглашаетесь с использованием нами cookies и политикой конфиденциальности.

Принять