1から離れてブック内のすべてのシートをループし、3つの他の連結である列を追加するコードを記述しようとしています。これは、1つのワークシートのすべての行をループするようだが、本コードは行と同様にシートをループしません
Sub addConcats()
Dim sh As Worksheet
Dim rw As Range
Dim RowCount As Integer
'Run through worksheets
Dim x As Long
Sheet1.Select
For x = 2 To ThisWorkbook.Sheets.Count
If Sheets(x).Name <> "VAT Transaction Report" Then Sheets(x).Select
Replace:=False
Dim LastRow As Long
LastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
For y = 2 To LastRow
'Concat
ActiveSheet.Cells(y, 20).Value = ActiveSheet.Cells(y, 7).Value &
ActiveSheet.Cells(y, 9).Value & ActiveSheet.Cells(y, 12).Value
Next y
Next x
End Sub
あなたがActiveSheetを参照しているあなたのyループ内:次のことを試してみてください
完全に選択シートを避け、単にワークシートオブジェクト(SH変数)に対して動作することをお勧めします。このため、1枚のシートのみを更新しています。 –@BrianMStafford 'x'ループで' Sheets(x).Select'がシートを変更しました。まだ非効率です – Dave
@Daveあなたは正しいです。私はそのコード行を見逃しました! –