我在Excel表格中有一个包含三列的表格。一列包含人名,第二列包含公司名,第三列包含城市名。
Name Company City
abc mn C1
asd th C2
qwe mn C1
aqw kj C1
ert mn C2
在这里,我在Excel 2007/2010中编写了一个宏,以获取为公司“mn”工作并位于“C1”城市的人名。
有人可以帮我吗???
答案 0 :(得分: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
答案 1 :(得分: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