2016-08-27 2 views
0

У меня есть таблица Excel Excel, используемая в качестве шаблона, поэтому я могу обновить CONNECTION (CSV-файл) с новой таблицей данных, которая ссылается на мою сводную таблицу.Excel Macro Request: Сохранить как копирование и разрыв соединения данных

Прямо сейчас у меня есть макрос, чтобы СОХРАНИТЬ КАК КОПИРОВАТЬ по определенному пути, так как я хочу сохранить оригинал неповрежденным.

Sub SaveCopyPath() 

With ActiveWorkbook 
    .SaveCopyAs "C:\Users\Me\" & Format(Date, "mmddyyyy") & "-" & [A1] & ".xlsm" 
End With 

End Sub 
  • Я ищу в VBA код, который будет применяться только к моему СПАС копировальные с этим:
    1. разрывать соединение по таблице данных
    2. Удалить Tab1 и TAB2 на сохраненная копия и сохранить сводную таблицу & «Данные» нетронутыми в сохраненной копии .
+0

Я вижу, что вы отредактировали вопрос, чтобы добавить тот факт, что источником является csv. Я могу изменить свой ответ ниже, если вы дадите немного больше указаний. Является ли соединение в структурированной таблице? Или просто в листе? –

+0

Данные извлекаются из CSV и добавляются в модель данных, которая рассматривается как таблица на моем листе «Данные». Я смог заставить это работать, используя ActiveWorkbook.Connections («ModelConnection»). Удалить – Dataletx

+0

Прохладный! Я надеялся, что это сработает для вас. –

ответ

0

При этом используется метод ListObject.Unlink для удаления соединения для передачи данных. Остальное должно быть простым:

Sub SaveCopyPath() 
Dim SavedCopy As Excel.Workbook 

ActiveWorkbook.SaveCopyAs "C:\Users\Me\" & Format(Date, "mmddyyyy") & "-" & [A1] & ".xlsm" 
Workbooks.Open "C:\Users\Me\" & Format(Date, "mmddyyyy") & "-" & [A1] & ".xlsm" 
Set SavedCopy = ActiveWorkbook 
With SavedCopy 
    .Worksheets("Data").ListObjects(1).Unlink 
    Application.DisplayAlerts = False 
    .Worksheets(1).Delete 
    .Worksheets(1).Delete 
    Application.DisplayAlerts = True 
    .Close True 
End With 

End Sub 
Смежные вопросы