vorab: ich habe leider keinerlei VBA-Erfahrung und versuche mich gerade an einem Makro, welches folgende Funktion ausführen soll:
1. Das speichern eines Arbeitsblattes als neue eigene Exceldatei (Dateiname=Arbeitsblattname+YYMMDD)
2. Die neue Exceldatei soll alle Formelbezüge innerhalb der Datei beibehalten(!) und alle Bezüge zu anderen Arbeitsblättern der alten Datei in Werte umändern.
Aktuell sieht mein laienhafter Versuch so aus:
Option Explicit
Sub CopynKill()
Dim intCount As Integer
Dim varLinks As Variant
On Error GoTo Fin
Application.ScreenUpdating = False
ThisWorkbook.Worksheets(1).Move ' CodeName des Tabellenblattes anpassen
With ActiveWorkbook
varLinks = .LinkSources(xlExcelLinks)
If Not IsEmpty(varLinks) Then
For intCount = 1 To UBound(varLinks)
.BreakLink varLinks(intCount), xlExcelLinks
Next intCount
End If
End With
ActiveSheet.Move Before:=ThisWorkbook.Worksheets(1)
Fin:
Application.ScreenUpdating = True
If Err.Number 0 Then MsgBox "Error: " & _
Err.Number & " " & Err.Description
ActiveSheet.Copy
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:="C:\Makro\" & Format(Now, "YYMMDD") & "Name.xlsx"
ThisWorkbook.Close True
End Sub
Problem1: er übernimmt nicht den Namen des Arbeitsblattes als Dateinamen
Problem2: Bezüge in der Originaldatei werden gelöscht, in der neuen Datei sind sie noch vorhanden. Quasi genau verkehrt herum...
Ich danke euch!