首页 > 解决方案 > For Each/IF 语句中的连接行

问题描述

我正在尝试连接行。

第一个单元格被正确填充;但是,之后的每个单元格都与第一个单元格相同。

每个单元格显示FS_Tier_1 , FS_CAP_1_001.

Sub Concatenate_Cap1()

  With Worksheets("PD Code Structure")
      Dim i As Integer
      Dim cell As Range
      Dim Rng1 As Range
      Set Rng1 = Range("F2:F1006")
      i = 2

      For Each cell In Rng1

          If InStr(Cells(i, 3).Value, "FS_Tier_") And InStr(Cells(i, 8).Value, "FS_CAP_1_") Then
              Range("F2:F1006").Formula = Cells(i, 3).Value & " , " & Cells(i, 8).Value
              i = i + 1
          End If

      Next cell
  End With

End Sub

标签: excelvba

解决方案


您在此处将整个范围设置为相同的值。

Range("F2:F1006").Formula = Cells(i, 3).Value & " , " & Cells(i, 8).Value

像这样的东西应该工作:

Sub Concatenate_Cap1()

    Dim c As Range, rw As range, v3, v8

    For Each c in Worksheets("PD Code Structure").Range("F2:F1006")
        v3 = c.EntireRow.cells(3).value
        v8 = c.EntireRow.cells(8).value
        If InStr(v3, "FS_Tier_") And InStr(v8, "FS_CAP_1_") Then
            c.value = v3 & " , " & v8
        End If
    Next cell

End Sub

推荐阅读