2016-04-15 8 views
0

У меня возникли проблемы с этим. Когда я запускаю макрос, он не производит никаких ошибок, но не дает мне никакого результата.Копирование вставки Названия рабочих листов в другую книгу

Sub EmpresasCubiertas() 


Dim x As Workbook 
Dim y As Workbook 

'## Open both workbooks first: 
Set x = Workbooks.Open("G:\Estudios\Biblioteca\Mercado Accionario Chileno\InsertarEmpresa.xlsm") 
Set y = Workbooks.Open("G:\Estudios\Biblioteca\Mercado Accionario Chileno\Procesamiento.xlsm") 

For i = 3 To x.Sheets.Count 

'Now, paste to y worksheet: 

y.Sheets(1).Range(“A” & i) = x.Sheets(i).Name 

Next i 


End Sub 

Обратите внимание, что рабочая тетрадь «y» - это рабочая книга, которую я открываю сначала для запуска макроса. Это уже открыто, если это поможет.

ответ

1

Проблема заключается в отсутствии свойства Value рядом с диапазоном в вашей петле. Он должен читать,

y.Sheets(1).Range(“A” & i).Value = x.Sheets(i).Name 

Я предполагаю, что вы сознательно выбрали, чтобы начать копирование имен рабочих листов с я = 3. Если вам нужны все рабочие листы, просто измените значение I к 1.

Попробуйте это:

Sub CopyWorkBookNames() 
Application.ScreenUpdating = False 'To avoid screen flickering 

Dim y As Workbook 
Dim x As Workbook 

Set y = Application.ActiveWorkbook 
Set x = Application.Workbooks.Open("FilePathToCopyFrom.xlsx") 

'Copy and paste worksheet names, in the workbook running the code, starting from cell A3. 
'If You want to paste into cell A1, decrement i in the range below accordingly 

For i = 3 To x.Sheets.Count 
    y.ActiveSheet.Range("A" & i).Value = x.Sheets(i).Name 
Next i 

x.Close 'Add SaveChanges Options as needed 
Application.ScreenUpdating = True 
End Sub 
+0

Прохладный! Да, значение отсутствует. Прекрасно работает. Спасибо –

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