0

従業員データが上司の詳細 (名前と電子メール ID) を含む Excel シートで提供されるシナリオがあります。また、スーパーバイザーは自分自身が従業員であるため、スーパーバイザーの詳細 (名前と電子メール ID) などを持っています...

表形式で -

emp_name email_id スーパーバイザー1_name スーパーバイザー1_emailid
abc abc@xyz.com pqr pqr@xyz.com
--------------------------------------
--------------------------------------
pqr pqr@xyz.com lmn lmn@xyz.com

上記のデータを次のようにExcelシート自体に表示したいのですが、

emp_name email_id スーパーバイザー1_name スーパーバイザー1_emailid スーパーバイザー2_name スーパーバイザー2_emailid
abc abc@xyz.com pqr pqr@xyz.com lmn lmn@xyz.com

など、スーパーバイザーの詳細........

各従業員の最後の上司の詳細まで。

Excel の vba やマクロについてはわかりません。
Excelでvlookup関数を使用して実行できますが、時間がかかりすぎるため、プログラムですばやく高速に実行したいと考えています。

4

1 に答える 1

0

おそらく、これはあなたが始めるのに役立つでしょう。

Dim FirstRow As Integer
Dim EndRow As Integer
FirstRow = 2
EndRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, 2).End(xlUp).row

Dim supName As String
Dim secRow As Long

For row = FirstRow To EndRow
    supName = Range("C" & row)
    If supName <> "" Then
        Do Until supName = ""
            For secRow = FirstRow To EndRow
                If Range("A" & secRow) = supName Then
                    Cells(row, Cells(row, Sheets(1).Columns.Count).End(-4159).Column + 1) = Range("C" & secRow)
                    Cells(row, Cells(row, Sheets(1).Columns.Count).End(-4159).Column + 1) = Range("D" & secRow)
                    supName = Range("C" & secRow)
                    Exit For
                End If
            Next secRow
        Loop
    End If
Next row
于 2013-09-05T17:56:47.127 に答える