<p>Function myone(n As Long) As String<br/>Dim d As New Dictionary<br/>Dim arr<br/>Dim k As Long<br/>Dim shc%<br/>For shc = 1 To Sheets.Count<br/> With Sheets(shc)<br/> If .name <> ActiveSheet.name Then<br/> arr = .Range(.Cells(2, 1), .Cells(.Range("A65536").End(xlUp).Row, 2)).Value<br/> For k = 1 To UBound(arr)<br/> d(arr(k, 1)) = ""<br/> <br/> Next k<br/> End If<br/> End With<br/> Erase arr<br/>Next shc<br/>arr = Application.Transpose(d.Keys)<br/>d.RemoveAll<br/>For k = LBound(arr) To UBound(arr)<br/> d(k) = arr(k, 1)<br/>Next k<br/>myone = d(n)<br/>End Function<br/>Function mysum(name As String) As Long<br/>Dim d As New Dictionary<br/>Dim arr<br/>Dim k As Long<br/>Dim shc%<br/>For shc = 1 To Sheets.Count<br/> With Sheets(shc)<br/> If .name <> ActiveSheet.name Then<br/> arr = .Range(.Cells(2, 1), .Cells(.Range("A65536").End(xlUp).Row, 2)).Value<br/> For k = 1 To UBound(arr)<br/> If Not d.Exists(arr(k, 1)) Then<br/> d(arr(k, 1)) = arr(k, 2)<br/> Else<br/> d(arr(k, 1)) = d(arr(k, 1)) + arr(k, 2)<br/> <br/> End If<br/> Next k<br/> End If<br/> End With<br/> Erase arr<br/>Next shc</p><p>mysum = d(name)<br/>End Function</p>
[此贴子已经被作者于2008-1-19 20:53:09编辑过] |