2016-04-15 117 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

問題在於循環中Range旁邊缺少Value屬性。它應該閱讀,

y.Sheets(1).Range(「A」 & i).Value = x.Sheets(i).Name 

我假設你特意選擇了開始複製工作表的名稱從i = 3,如果你需要的所有工作表,只是改變我的值設置爲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

酷!是的,價值缺失。完美運作。謝謝 –

相關問題