2016-08-08 18 views
0

を私は次のコードで読み取り専用のプロパティへの代入についてExcelでエラーを取得しています:私はあなたが持っている推測しているExcelは、コンパイルエラー:読み取り専用に割り当てることができませんプロパティ

1 Sub GetSheets() 
2 Path = "C:WHERE MY DOCUMENTS ARE KEPT" 
3 Filename = Dir(Path & "*.CSV") 
4  Do While Filename <> "" 
5  Workbooks.Open Filename:=Path & Filename, ReadOnly:=True 
6   For Each Sheet In ActiveWorkbook.Sheets 
7   Sheet.Copy After:=ThisWorkbook.Sheets(1) 
8  Next Sheet 
9   Workbooks(Filename).Close 
10   Filename = Dir() 
11  Loop 
12 End Sub 
+3

どの行にエラーが発生しますか? –

+1

上記のコードにコンパイルエラーはありません。 VBAプロジェクトに他のコードがありますか?私は、エラーがどこか別のものだと思う:) –

+0

私は "このブック"のデータをコンパイルするには、コードを入れています。以下の答えは私を混乱させる。 (と私は新しいですが、私を許して)しかし、現在のパスは、すべての.csvファイルが配置されている場所です。私が見ている唯一のエラーコードは、上記のことを私に伝えています。 – chall

答えて

2

ThisWorkbookモジュールの投稿コード?

ThisWorkbookは、組み込みの(読み取り専用)Pathプロパティを持つブック自体を表します。

Pathの名前を(たとえば)myPathに変更してください。これで問題はありません。

Sub GetSheets() 
    'best to use a Constant here... 
    Const THE_PATH As String = "C:\WHERE\MY DOCUMENTS\ARE KEPT\" 

    Dim Filename as String, wb As Workbook, Sheet As Worksheet 

    Filename = Dir(THE_PATH & "*.CSV") 
    Do While Filename <> "" 
     Set wb = Workbooks.Open(Filename:=THE_PATH & Filename, ReadOnly:=True) 
     For Each Sheet In wb.Sheets 
      Sheet.Copy After:=ThisWorkbook.Sheets(1) 
     Next Sheet 
     wb.Close 
     Filename = Dir() 
     Loop 
End Sub 
+0

うわー、とても良い。 ThisWorkbookに貼り付けられているかどうかを確認することができますが、実際にはコンパイルエラーが発生します。優れた。 –

+0

私は助けに感謝します。 – chall

+0

"thisworkbook"に入れています。2行目のパスの名前をPath = myパスに変更すると、同様のエラーが表示されます。私の目標は500個のファイルを1つにまとめてマージすることです。これは、私がすべての耳であるより良い方法があるならば、 "thisworkbook"を使うことが私の考えであったのです。ありがとうございました – chall

関連する問題