ファイルからデータをコピーしてマクロファイルに読み込むこのマクロファイル( "graphPrint.xls")があります。ペーストされたデータを使用してグラフ化します。 これで、4つのファイルからデータを読み込み、すべてのデータをマクロファイルで結合し、すべてのデータを含む1つのグラフを作成できるように、このマクロを変更する必要があります。VBAファイルからデータをコピーし、別のファイルの末尾に貼り付けます
私がやろうとしています何を、
- が近い
- 、マクロファイルに貼り付け
- 、ファイルにデータをコピー
- からデータを読み取るために、ファイルを開いていますファイル。そして、私はforループでこのプロセスを繰り返す必要があります。
ここで問題となるのは、マクロファイルに読み込まれたデータを貼り付けるときに、データの最後に貼り付けられていることを確認する必要があるためです。
ファイル名がfile0.csv
〜file3.csv
であるとします。 私はこのマクロを持っている:
Dim readFile As String;
For i = 0 To 3
readFile = "file" + CStr(i) + ".csv" 'get file name
WorkbooksOpen Filename:= readFile 'open file
ActiveSheet.Cells.Select 'select all data from the file
lastRow = Range("A1").End(xlDown).Row 'edited
Selection.Copy 'copy all
Windows("graphPrint.xls").Activate 'open macro file
ActiveSheet.Paste 'paste here in macro file
Application.CutCopyMode = False 'cancel the copy mode
Windows(readFile).Activate
ActiveWindow.Close 'close this file
Next i
たびに貼り付けたときただし、このマクロは、新しいものと古いデータに置き換えられ、したがって、示されたグラフは、最後の読み込まれたファイルからのデータを使用します。ファイルの欄には、「Z1」から「A1」から起動するので、私はそれがマクロファイルの末尾に毎回、それを貼り付け、このことだろう期待して、
ActiveSheet.Paste
と
Range(Range("A1:Z1" & lastRow), ActiveCell.End(xlDown)).Offset(1,0).PasteSpecial
を変更します私はすべてのデータをグラフに反映させることができます。しかし、これは
与え
エラー "object'_Worksheetのメソッド '範囲'」失敗しました"。
誰かが私を解決に導くことができますか?ありがとうございました。
どこかで定義された 'lastrow 'を持っていますか? –
はい、上記のコードでその行をスキップしました。私はそれを編集した。それでも私は同じエラーが発生しています。私はちょうどlastRowが65536を得ていることに気づいた。 –
Ok。したがって、データの最後の行がある場合は、単純な方法でそれを使用しないのはなぜですか? ;)Range( "A"&lastrow) 'は、A列の最後のセルを返します。' Range( "A1:Z1"&lastRow) 'で何をしているのか再度確認してください。 –