просуммировать значения в столбце и добавить сумму к имени файла рабочей книги

просуммировать значения в столбце и добавить сумму к имени файла рабочей книги

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

Я хочу, чтобы сумма значений в столбце D была добавлена ​​к имени файла этой книги в формате Filename_Sum(D).xls

Вот что я сделал, все что мне нужно, это вычислить сумму столбцов I2:I, преобразовать сумму в строку и включить в имя файла (значение в столбце A)

            'Copy/paste the visible data to the new workbook
            My_Range.SpecialCells(xlCellTypeVisible).Copy
            With WSNew.Range("A1")
                ' Paste:=8 will copy the columnwidth in Excel 2000 and higher
                ' Remove this line if you use Excel 97
                .PasteSpecial Paste:=8
                .PasteSpecial xlPasteValues
                .PasteSpecial xlPasteFormats
                Application.CutCopyMode = False
                .Select                  

            End With

            mySum = Application.WorksheetFunction.Sum(Columns("I2:I1024"))


            'Save the file in the new folder and close it
            On Error Resume Next
            WSNew.Parent.SaveAs foldername & _
                                cell.Value _
                                & CStr(mySum) & _
                                FileExtStr, FileFormatNum'

решение1

Я предполагаю, что вы ничего не знаете о VBA или макросах, поэтому вот кратчайший перечень шагов, чтобы сделать то, что вам нужно:

Откройте рабочую книгу. Нажмите alt + F11 на клавиатуре. Это откроет экран разработчика VBA. Слева находится дерево, щелкните правой кнопкой мыши на верхнем объекте (VBAProject(YourFileName)) и выберите Вставить > Модуль. В открывшемся модуле на главном экране вставьте этот код:

Option Explicit
Sub SaveWithSum()
Dim SumOfD As Integer
SumOfD = Application.Sum(Range("Sheet1!D:D"))
ActiveWorkbook.SaveAs "C:\YourFolder\YourFilename" & SumOfD & ".xlsx", FileFormat:=51
End Sub

Затем нажмите «сохранить». Вам будет предложено, что ваш текущий формат файла (.xlsx) может запускать макросы. Выберите «нет» и сохраните файл как YourFile.xlsm.

Готово! Результирующий файл будет C:\YourFolder\YourFilename##.xlsx.

Этот скрипт сохранит все переименованные файлы как файлы .xlsx, которые НЕ МОГУТ снова запустить макрос (он фактически исчезнет с экрана разработчика). Если вы хотите сохранить файлы как файлы .xlsm и позволить скрипту продолжить работу в сохраненных файлах, измените ".xslx" на ".xlsm" и измените FileFormat на 52.

Вы можете создать кнопку на рабочем листе, которая будет ссылаться на макрос (быстрый поиск в Google поможет в этом) или просто запустить макрос, выбрав Вид>Макросы, и запустить его оттуда.

Убедитесь, что Лист1! изменен в соответствии с вашим рабочим листом. Удачи!

решение2

Несмотря на то, что вопрос был опубликован несколько лет назад, я хотел бы дать ответ тем, кто ищет решение:

Sub save_with_value()

Dim Fname As String
Dim cell As Range
Application.ScreenUpdating = False
Application.DisplayAlerts = False         'replaces existing file if already exists

Fpath = "O:\TEST\Values\"  'folder path - change accordingly to your folder
Fname = »Filename« 
Dim result As Double
result = WorksheetFunction.Sum(Range("D:D")) 
ActiveWorkbook.SaveAs Filename:= _
        Fpath & "\" & Fname & "_" & Format(result, "#,##0.00") & " EUR" & ".xlsx"

End sub

Связанный контент