0

列 C をループし、重複値を見つけて列 D にコピーするマクロが必要です。重複値が見つかったら、列 A から隣接する値をコピーして列 E に配置します。

望ましい出力の例:

A                 B                C              D            E
Project1          test1            quiz1         quiz1        Project1
Project2          test2            quiz1         quiz1        Project2
Project3          test3            quiz2
4

4 に答える 4

0

次の方法で実行できます。

Sub dp()

AR = Cells(Rows.Count, "A").End(xlUp).Row

For Each p1 In Range(Cells(1, 3), Cells(AR, 3))
    For Each p2 In Range(Cells(1, 3), Cells(AR, 3))
        If p1 = p2 And Not p1.Row = p2.Row Then
            Cells(p1.Row, 4) = Cells(p1.Row, 3)
            Cells(p2.Row, 4) = Cells(p2.Row, 3)
            Cells(p1.Row, 5) = Cells(p1.Row, 1)
            Cells(p2.Row, 5) = Cells(p2.Row, 1)
        End If
    Next p2
Next p1

End Sub
于 2013-06-21T21:52:28.977 に答える
0

私はこの場合のためにこのサブを持っています..

Sub CheckDupl()
Dim x, i, nD As Integer
Dim c As String
Dim nLimit As Integer
Dim bFound As Boolean

nLimit = 3 '--> you can change this
nD = 1

For x = 1 To 3
  Cells(x, 6) = "x"
  c = Cells(x, 3)
  bFound = False
  For n = x + 1 To nLimit
    If Not Cells(n, 6) = "x" Then
      If Cells(n, 3) = c Then
        If Not bFound Then
          bFound = True
          Cells(nD, 4) = Cells(x, 3)
          Cells(nD, 5) = Cells(x, 1)
          MsgBox n
          Cells(nD + 1, 4) = Cells(n, 3)
          Cells(nD + 1, 5) = Cells(n, 1)
          Cells(n, 6) = "x"
          nD = nD + 2
        Else
          Cells(nD, 4) = Cells(n, 3)
          Cells(nD, 5) = Cells(n, 1)
          Cells(n, 6) = "x"
          nD = nD + 1
        End If

      End If
    End If
  Next
Next
End Sub

ボタンでアクティブ化できます..そして列Fはヘルプに使用されます.削除できます!

于 2013-06-18T16:18:59.517 に答える
0

なぜマクロを使用するのですか? 列 D のこの式だけではないのはなぜですか?

=IF(COUNTIF(C:C,C1)>1, C1,"")

タスクを完了するには、列 E に次の数式を入力します。

=IF(D1="", "", A1)

VBAよりも簡単で、処理も速いと思います。

于 2015-01-30T15:01:16.097 に答える
0
  1. C列でソート
  2. 行をループして、selectedrow.cells(1,3)=selectedrow.cells(2,3) かどうかを確認します。
  3. それらが等しい場合、この行と次の行の両方について、列 C の値を列 D にコピーします。また、この行と次の行の列 A を列 E にコピーします。
  4. 選択した行の c 列が空になるまでループします。
于 2013-06-18T15:21:04.087 に答える