Excel VBA Макросы. Перенос данных из заданного столбца в следующий пустой столбец.

Автор Твист, 05 июня 2021, 15:54

Твист

У меня есть столбец F, в котором постоянно меняются значения (в формуле присутствует функция СЛЧИС).
Необходимо скопировать значения из столбца F и перенести их в столбец справа как значения.
При следующем запуске макроса, значения столбца F должны копироваться в следующий пустой столбец и т.д.
Пользователь щёлкает кнопку, макрос пересчитывает формулы на листе, макрос копирует столбец F в следующий пустой столбец.

Администратор

В конце работы макроса, формулы снова пересчитаются, поэтому в созданном столбце будут другие значения.
Т.е. сначала макрос пересчитывает, а затем одно из действий макроса ещё раз пересчитает.

Макрос
Sub Макрос()
   
    Dim c As Long
   
   
    ' Отключение монитора и пересчёта формул.
        ' Необходимости в этом нет, сделано просто так.
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
   
    ' Пересчёт формул на активном листе.
    ActiveSheet.Calculate
   
    ' Копирование столбца F в первый пустой столбец.
        ' Формулы заменяются на значения.
    c = Cells(1, Columns.Count).End(xlToLeft).Column + 1
    Columns("F").Copy
    Cells(1, c).PasteSpecial xlPasteColumnWidths
    Cells(1, c).PasteSpecial xlPasteFormats
    Cells(1, c).PasteSpecial xlPasteValues
    Application.CutCopyMode = False
   
    ' Включение пересчёта формул.
    Application.Calculation = xlCalculationAutomatic
   
End Sub
[свернуть]