2017-12-07 8 views
1

フォルダ内のファイルをループしながらこのコードセグメントを実行しています。 コードは実行されていますが、このセグメントには出力がありません。私のコードは実行されていますが、値は挿入されていません

Dim LastRow As Long 
Dim rng1 As Range 
wb.Worksheets(1).Activate 
Set rng1 = Range("B15:E81,N15:O81") 

With ThisWorkbook.Worksheets("Sheet1") 
LastRow = .Cells(.Rows.Count, "E").End(xlUp).Row 
.Range("E" & LastRow + 1).Value = rng1 
End With 
  1. Iは、フォルダ内のすべてのExcelワークブックからB15からE81 & N15にO 81にデータを抽出するためのコードセグメントを使用しています。変数に複写範囲時
  2. 、それは次の空白セルに1行
  3. 入力範囲変数によってオフセット、選択列Eからの最後のエントリこのコードブック嘘
  4. を活性化します。

私が見つけたすべての助けに感謝します。前もって感謝します。

+0

だけRNG1 – user1

+0

の ".VALUE" を追加するにはONE *列(列 "E")または* MULTIPLE *カラム(列 "E" から始まる、例えば*で入力するRNG1の値が必要です"E"、 "F"、 "G"、 "H"、 "I"、 "J")? – AntiDrondert

答えて

2

はこれを試してください:あなたはセルの同じ量を参照する必要があるため

Dim lastRow As Range, rng1 As Range 

Set rng1 = Worksheets(1).Range("B15:E81,N15:O81") 
Set lastRow = ThisWorkbook.Worksheets("Sheet1").Cells(ThisWorkbook.Worksheets("Sheet1").Rows.Count, "E").End(xlUp) 

lastRow.Offset(1, 0).Resize(rng1.Rows.Count, rng1.Columns.Count).Value = rng1.Value 
+0

ありがとうございます。それは私に多くの問題を救った。しかし、私はコードからN:Oをコピーすることができませんでした。だから私はそれのための別の範囲変数を宣言し、あなたのコードを模倣 – Tyler

1

それは、機能していません。あなたの場合ここでは.Range("E" & LastRow + 1).Value = rng1は、左側の1つのセルと右側の多くのセルを参照しています。

あなたがあなたの行を変更した場合:

.Range("E" & LastRow + 1).Value = rng1.Cells(1, 1)

それは正しくあなたの最初のセルが表示されます。 左の範囲を増やすには、@ CallumDAの答えと同じようにResize()を使用します。

+1

私は参照してください。 – Tyler

+0

@タイラー - ありがとう: – Vityata

0

Copyを使用できませんか?次に、目標サイズを計算する必要はありません。

dim target as range 
With ThisWorkbook.Worksheets("Sheet1") 
    set target = .Range("E" & .Cells(.Rows.Count, "E").End(xlUp).Row+1) 
end With 
wb.Worksheets(1).Range("B15:E81,N15:O81").Copy target 
+0

説明できません。 B:Eからの値をNから分離する必要があります。Oも可能です – Tyler

関連する問題