Summieren Sie die Werte in einer Spalte und fügen Sie die Summe zum Dateinamen einer Arbeitsmappe hinzu

Summieren Sie die Werte in einer Spalte und fügen Sie die Summe zum Dateinamen einer Arbeitsmappe hinzu

Hallo, ich konnte neue Arbeitsblätter basierend auf eindeutigen Werten in einer Spalte erstellen. Darüber hinaus möchte ich die Werte in einer Spalte summieren und diese Summe in den Dateinamen jedes entsprechenden Arbeitsblatts aufnehmen.

Ich möchte, dass die Summe der Werte in Spalte D zum Dateinamen dieser Arbeitsmappe im Format Dateiname_Summe(D).xls hinzugefügt wird.

Das habe ich gemacht. Ich muss nur die Summe der Spalte I2:I berechnen, die Summe in einen String umwandeln und in den Dateinamen aufnehmen (den Wert in Spalte 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'

Antwort1

Ich gehe davon aus, dass Sie keine Ahnung von VBA oder Makros haben. Hier sind also die kürzesten Schritte, um das Gesuchte zu tun:

Öffnen Sie Ihre Arbeitsmappe. Drücken Sie auf Ihrer Tastatur Alt + F11. Dadurch wird der VBA-Entwicklerbildschirm geöffnet. Auf der linken Seite befindet sich ein Baum. Klicken Sie mit der rechten Maustaste auf das oberste Objekt (VBAProject(IhrDateiname)) und wählen Sie Einfügen > Modul. Fügen Sie im geöffneten Modul im Hauptbildschirm diesen Code ein:

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

Klicken Sie dann auf Speichern. Sie werden darauf hingewiesen, dass Ihr aktuelles Dateiformat (.xlsx) Makros ausführen kann. Wählen Sie Nein und speichern Sie Ihre Datei als YourFile.xlsm.

Fertig! Die resultierende Datei lautet C:\IhrOrdner\IhrDateiname##.xlsx.

Dieses Skript speichert alle umbenannten Dateien als .xlsx-Dateien, die das Makro NICHT erneut ausführen können (es verschwindet tatsächlich vom Entwicklerbildschirm). Wenn Sie die Dateien als .xlsm-Dateien speichern und das Skript auch in den gespeicherten Dateien weiter ausführen möchten, ändern Sie „.xslx“ in „.xlsm“ und ändern Sie das Dateiformat in 52.

Sie können auf dem Arbeitsblatt eine Schaltfläche erstellen, die mit dem Makro verknüpft ist (eine schnelle Google-Suche hilft dabei) oder das Makro einfach ausführen, indem Sie „Ansicht > Makros“ auswählen und es von dort aus ausführen.

Stellen Sie sicher, dass Sheet1! so geändert wird, dass es mit Ihrem Arbeitsblatt übereinstimmt. Viel Glück!

Antwort2

Auch wenn die Frage schon vor einigen Jahren gepostet wurde, möchte ich für andere, die nach einer Lösung suchen, eine Antwort bereitstellen:

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

verwandte Informationen