2013-05-15 10 views
0

Я работаю над небольшим проектом, в котором мне нужно добавить листы в текущую открытую книгу из любой внешней базы данных рабочих листов в другой книге. Я сделал форму для импорта любого листа, который требуется в текущей открытой (активной) книге. Листы будут скопированы с удаленной (в любой другой папке, но на том же компьютере) книги. Я использую следующий код, но по неизвестным причинам листы НЕ копируются в мою текущую книгу. Срочная помощь приветствуется.Копирование внешнего листа в текущую книгу, Excel VBA

Dim wb As Workbook 
Dim activeWB As Workbook 
Dim FilePath As String 
Dim oWS  As String 
Set activeWB = Application.ActiveWorkbook 

FilePath = "D:\General Required Docs\DATA.xlsm" 

If optFirst.Value = True Then 
    Application.ScreenUpdating = False 
    Application.DisplayAlerts = False 
    On Error Resume Next 
    oWS = cboMaterial.Value 
    Set wb = Application.Workbooks.Open(FilePath) 
    wb.Worksheets(oWS).Copy  
    After:=Application.ActiveWorkbook.Sheets(ThisWorkbook.Sheets.count) 
    activeWB.Activate 
    wb.Close False 

    Application.ScreenUpdating = True 
    Application.DisplayAlerts = True 

ответ

2

Изменить

wb.Worksheets(oWS).Copy  
    After:=Application.ActiveWorkbook.Sheets(ThisWorkbook.Sheets.count) 

в

wb.Worksheets(oWS).Copy  
    After:=activeWB.Sheets(activeWB.Sheets.count) 

при условии, что РМО индекс листа, который необходимо скопировать.

+0

Wow, что называется "работал как шарм" ....... Спасибо так много "Ripster" –

+0

Nice! не знал этого, спасибо ... есть ли способ изменить имя? – Ch32k0

0
Sub Add_Bridge_1() 
    Dim wbk1 As Workbook, wbk2 As Workbook 

    'add your own file path 
    fileStr = "C:\Program Files\Microsoft Office\Office\HL DDS Templates.xlsx" 

    Set wbk1 = ActiveWorkbook 
    Set wbk2 = Workbooks.Add(fileStr) 

    'wbk2.Sheets("Bridge 1").Copy After:=Workbooks("WorkbookNameYouCopyCodeInto").Sheets(1) 
    wbk2.Sheets("Sheet Name").Copy After:=wbk1.Sheets(1) 
    wbk2.Saved = True 
End Sub 
Смежные вопросы