對列中的值求和並將總和加到工作簿的檔案名稱中

對列中的值求和並將總和加到工作簿的檔案名稱中

您好,我已經能夠根據列中的唯一值建立新的工作表。除此之外,我想對列中的值求和,並將該總和包含在每個對應工作表的檔案名稱中。

我希望將 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」並將檔案格式變更為 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

相關內容