2016-04-15 10 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プロパティがないことにあります。 :それはこれを試してみてください、私はあなたがすべてのワークシートが必要な場合には、意図的にI = 3からワークシート名のコピーを開始することを選んだことを、ただ1

にiの値を変更すると仮定しています、

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

をお読みください

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

クール!ええ、値はありませんでした。作品は完璧です。どうも –

関連する問題