0
votes

I have Workbook with 3 Worksheets with different data. And now I'm trying to execute the same code for each of Worksheets (concatenate specific words with data from 1,3 Columns and then transpose Range of 3 cells from rows to Column) The code below doesn't actually do that i need.It simple do correctly for the last sheet and then copy this result to another sheets. But i need the unique result for each sheet. Any help is greatly appreciated!

Option Explicit

Sub forEachWS()
    Dim wb                  As Workbook
    Dim ws                  As Worksheet

Set wb = ActiveWorkbook

For Each ws In wb.Worksheets
    ws.Columns("G:J").Clear
    Call execute(ws)
Next
End Sub

Sub execute(ws As Worksheet)
    Dim intLastRow          As Long
    Dim intR                As Long
    Const intStartRow       As Integer = 2
    Dim destRow             As Long

With ws

  intLastRow = .Cells(.Rows.Count, 1).End(xlUp).Row

  destRow = 2

  For intR = intStartRow To intLastRow
      .Range("G" & intR) = "ID =" & Cells(intR, 1).Value
      .Range("H" & intR) = "[FROM].[#" & Cells(intR, 3).Value
      .Range("I" & intR) = "END"
      .Range("G" & intR & ":I" & intR).Copy
      .Range("J" & destRow).PasteSpecial Transpose:=True
      destRow = destRow + 3
  Next
End With
End Sub
1

1 Answers

0
votes

I was surprised, but it works if:

Cells(intR, n).Value

replace on:

Range("Colmn" & intR).Value