- 最後登錄
- 2024-11-2
- 在線時間
- 7253 小時
- 註冊時間
- 2010-5-4
- 閱讀權限
- 95
- 精華
- 0
- UID
- 7964333
- 帖子
- 155
- 積分
- 1282 點
- 潛水值
- 47965 米
| 本帖最後由 tryit244178 於 2017-2-16 05:28 PM 編輯
查了一下,好像是比對文字的時候就會出包…
研究了好久。算了,搞不懂…自已寫一個比較快
貼到模組裡,儲存格裡打 =GetClass(B2,分組依據,2)- Public Function GetClass(ByVal sourceRange As Range, ByVal seachRange As Range, ByVal column As Integer) As String
- Dim i As Integer
- Dim seachValue As String
- GetClass = "#N/A"
-
- Select Case column
- Case Is > seachRange.Columns.Count
- GetClass = "#REF!"
- Case Is <= 0
- GetClass = "#VALUE!"
-
- Case Else
- For i = 1 To GetLastRow(seachRange)
- seachValue = Left(sourceRange, Len(seachRange.Cells(i, 1).Value))
- If Not seachValue = "" And seachRange.Cells(i, 1).Value = seachValue Then
- GetClass = seachRange.Cells(i, column).Value
- Exit For
- End If
- Next i
- End Select
- End Function
- Private Function GetLastRow(ByVal sourceRange) As Integer
- If sourceRange.Cells(sourceRange.Cells.Rows.Count, 1).End(xlUp).Row = 1 Then
- GetLastRow = sourceRange.Cells.Rows.Count
- Else
- GetLastRow = sourceRange.Cells(sourceRange.Cells.Rows.Count, 1).End(xlUp).Row
- End If
- End Function
複製代碼
有2點要注意:
第一,分組依據裡,得把前面的地址全部打進去
也就是你不能只打什麼什麼里,要打「新北市泰山區新明里」
像這樣才不會比對不出來
第二,把範圍比較小的排上面
像「新北市泰山區新明里11鄰」如果排在「新北市泰山區新明里」下面的話
就永遠不會抓到11鄰去
補充內容 (2017-2-16 05:25 PM):
哇咧!結果最後找到問題了…只要對 分組依據 做遞減排序就行了……真是浪費時間做白工…
... |
|