열의 값을 합산하고 그 합계를 통합 문서의 파일 이름에 추가합니다.

열의 값을 합산하고 그 합계를 통합 문서의 파일 이름에 추가합니다.

안녕하세요. 저는 열의 고유한 값을 기반으로 새 워크시트를 만들 수 있었습니다. 이 외에도 열의 값을 합산하고 이 합계를 해당 워크시트의 파일 이름에 포함하고 싶습니다.

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 검색이 도움이 될 것임) 보기>매크로를 선택하여 매크로를 실행할 수 있습니다.

Sheet1을 확인하세요! 워크시트와 일치하도록 변경됩니다. 행운을 빌어 요!

답변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

관련 정보