Добрый день.
Есть книга с "Умной таблицей".
Мне нужно сохранить значения некоторых столбцов из таблицы в разные csv.
Потыкал гугл и форум, сделал такой макрос, для начала просто один и тот же диапазон в разных csv что бы сохранил:
Код |
---|
Sub test()
Dim f
Dim r As ListObject
Dim rr As Range, r1 As Range
Dim cFileName As String
Dim wb As Workbook, newwb As Workbook, sh As Worksheet, newsh As Worksheet
Dim i As Long, j As Long
Application.ScreenUpdating = False
Set wb = ActiveWorkbook
Set sh = ActiveSheet
Set r = sh.ListObjects("Таблица1")
Set r1 = r.Range
Set newwb = Workbooks.Add
Set newsh = newwb.Sheets(1)
For i = 1 To 2
f = i * 100 + 20
cFileName = f & ""
If sh.Range("M2").Value = "Зима" Then
With r
Set rr = Union(.ListColumns("sta").DataBodyRange, .ListColumns("P20").DataBodyRange, .ListColumns("Q20").DataBodyRange)
End With
Else
newwb.Close savechanges:=False
MsgBox ("Проверить наименование")
End If
rr.Copy
newsh.Cells(1, 1).Select
ActiveSheet.Paste
If InStr(1, cFileName, "\") = 0 Then cFileName = wb.Path & "\" & cFileName
Application.DisplayAlerts = False
newwb.SaveAs Filename:=(cFileName), FileFormat:=xlCSVWindows, CreateBackup:=False, local:=True
Application.DisplayAlerts = True
newwb.Close savechanges:=False
Next
End Sub |
На первой итерации все норм, а на второй на строчке
newsh.Cells(1, 1).Select, выдает ошибку run-time error '-2147221080 (800401a8)': automation error
Подскажите что не так? Как правильнее сохранять разные значения из одной таблицы в разных файлах?