0

3列のExcelシートにテーブルがあります。1列目には個人名、2列目には会社名、3列目には都市名が含まれます。

Name    Company City
abc     mn      C1
asd     th      C2
qwe     mn      C1
aqw     kj      C1
ert     mn      C2

ここでは、Excel 2007/2010でマクロを作成して、会社「mn」で働いていて「C1」市にいる人の名前を取得しています。

誰かが私を助けることができますか?

4

2 に答える 2

1

地域を会社別に並べ替えてから、市ごとに並べ替えるのが、従業員を見つける最も簡単な方法だと思います。しかし、このようなものも機能するはずです:

Sub SearchEmployeeByCompanyAndCity(company As String, city As String, start As Range)
    Dim i, j As Integer
    i = 1
    j = 1
    While (start.Cells(i, j).Value <> "")
        If start.Cells(i, j + 1).Value = company And start.Cells(i, j + 2).Value = city Then
            MsgBox start.Cells(i, j)
        End If
        i = i + 1
    Wend
End Sub

Sub Test()
    SearchEmployeeByCompanyAndCity "mn", "C1", Worksheets(1).Range("A1")
End Sub
于 2013-02-26T21:13:45.737 に答える
0

テーブルが次のように右上にある場合Sheet1

ここに画像の説明を入力してください

このようなマクロで十分ですが、これを行う方法は他にもたくさんあります。最も簡単なのはPivot Table

Option Explicit

Sub FINDemployees()

With Excel.ThisWorkbook.Sheets("Sheet1")
    Dim cell
    For Each cell In .Range(.Cells(2, 1), Cells(.Rows.Count, 1).End(Excel.xlUp))
        If LCase(cell(1, 2)) = "mn" And LCase(cell(1, 3)) = "c1" Then
            MsgBox cell.Value
        End If
    Next
End With
End Sub
于 2013-02-26T21:17:42.057 に答える