Я пытаюсь создать резервную копию с VBA. Проблема в том, что все, кроме высоты строки, копируется. Я попытался найти ответ, но не смог найти ничего подходящего.VBA copy row height
Вот мой код:
Application.Workbooks.Add ' Neue Mappe erstellen
Dim counter As Integer
Dim wbNew As Workbook
Dim shtOld, shtNew As Worksheet
Dim pfad As String
Dim name As String
pfad = ThisWorkbook.Path
name = Left(ThisWorkbook.name, Len(ThisWorkbook.name) - 5)
'MsgBox "Aktueller Pfad: " & ThisWorkbook.Path
'MsgBox Left(ThisWorkbook.name, Len(ThisWorkbook.name) - 5)
Set wbNew = Application.Workbooks(Application.Workbooks.Count)
Do While wbNew.Worksheets.Count < ThisWorkbook.Worksheets.Count
wbNew.Worksheets.Add ' Weitere Tabellen hinzufügen, falls nötig
Loop
' Tabellen kopieren
For counter = 1 To ThisWorkbook.Worksheets.Count
Set shtOld = ThisWorkbook.Worksheets(counter) ' Quelltabelle
Set shtNew = wbNew.Worksheets(counter) ' Zieltabelle
shtNew.name = shtOld.name ' Tabellenname übernehmen
shtOld.UsedRange.Copy ' Quelldaten und -format kopieren
shtNew.Range("A1").PasteSpecial Paste:=8 ' Spaltenbreite übernehmen
shtNew.UsedRange.PasteSpecial xlPasteValues ' Werte einfügen
shtNew.UsedRange.PasteSpecial xlPasteFormats ' Format übernehmen
Next
wbNew.SaveAs pfad & "\" & name & " " & Format(Now, "YYYYMMDD hhmm") & ".xlsx"
Application.CutCopyMode = False ' Zwischenspeicher löschen
'
Кто есть идея? Было бы замечательно!
@Veve, занимающий высоту ряда, является его намерением. Обычно xlPasteFormats делает это, чтобы соответствовать его требованиям, за исключением того, что в этом случае это нечетно. Возможно, объединенные ячейки или перенос текста перегружают функциональность? – Zerk
моя рекомендация не будет использовать функцию копирования/вставки, но функция перемещения листа с копией. Это один, который я использую лично: 'Для каждого листа в книгах (имя_файла). Рабочие листы Рабочие книги (имя_файла). Листы (имя листа). Копирование после: = Рабочие книги (« Основная рабочая книга.xlsm »). Рабочие листы (" Информация ") Следующий лист' –