コードが次のワークシートでセルを選択しないのはなぜですか?私のコピーブックは12のワークシートを含んでいます。 Sheet.Name = ("cat","rabbit","cow","sheep"...+8)
。範囲内のループセルと各ワークシートのループ
各シートには同じヘッダーがあります。 Col(B1:AK1)= year(1979,1980,...2014)
。
貼り付けを繰り返し開いている別のフォルダにあります。 File.Name = (1979.xlsx, 1980.xlsx,..,2014.xlsx)
。
各シートには12個の列があります。 Col(B1:M1)= ("cat","rabbit","cow","sheep"...+8)
。
範囲内の各セルはきれいにループしますが、ワークシートはそうではありません。コードの実行が終了すると、worksheet("cat")
から同じデータを持つ貼り付けブックがチェックされます。私はコーディングに熟練していないので、コードを改善できるときはいつでも助言してください。
Sub transferPict()
Dim wsC As Integer
Dim cell As Range
Dim Rng As Range
Dim j, i As Long
Dim x As String
Dim Folderpath
Dim file As String
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
wsC = ThisWorkbook.Sheets.Count
For j = 1 To wsC
i = j + 1
Set Rng = Range("B1:AK1")
For Each cell In Rng
x = cell.Value
cell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture
Folderpath = "F:\Sony Pendrive\Data Baru\Tahun\PasteTahun\"
file = Folderpath & x & ".xlsx"
Workbooks.Open (file)
ActiveWorkbook.Worksheets("sheet1").Select
ActiveSheet.Cells(2, i).Select
ActiveSheet.Paste
ActiveWorkbook.Close saveChanges:=True
Next cell
Next j
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
はあなたにYowE3kをありがとう、私は以前にワークシートを言及しようとしたが、私のコードは、エラー1004で途中で実行 - レンジクラスのselectメソッドは失敗しました。 (2、i)。エラー438でペースト - オブジェクトはこのプロパティまたはメソッドをサポートしていません –
@SitiSal - 申し訳ありませんが、 'Paste'メソッドは、 ( 'Cells(2、i)'のような) 'Range'オブジェクトで作業します - 代わりに' PasteSpecial'メソッドを使わなければなりません。私は答えを編集しました。 – YowE3K
ありがとうございます。エラー438を解決します。今度は、ThisWorkbook.Sheets(j).Range(cell.Offset(1,0)、cell.Offset(1、0).End(xlDown))行でデバッグします。CopyPicture Appearance:= xlScreen、Format:= xlPicture error 1004どういうわけか、コピー&ペースト特別値と数値書式でコピーブックのデータを変更します。一時的に動作し、後で他のワークシートでデバッグします。データそのものに隠れている問題はあると思いますか? –