2014-06-12 39 views
0

我需要在Excel的表格的第一列中搜索一個值,並刪除對應的表格行。搜索必須不區分大小寫。Excel表中的不區分大小寫查詢

如果我在Table.DataBodyRange上使用.Find方法返回一個範圍,但我不知道這個範圍相對於Table.DataBodyRange的位置。

Set oCell = oTable.ListColumns("Client name").DataBodyRange.Find(what:=szClientName, MatchCase:=False, searchformat:=False) 

oTable.ListRows(oCell.Row).Delete 'THIS DOES NOT DELETE THE TABLE ROW WHERE szClientName HAS BEEN FOUND BUT IT DELETES THE WORKSHEET ROW WHERE oCell IS LOCATED 

如果我使用Application.match方法上Table.DataBodyRange,它返回找到元素的索引相對於表可惜搜索區分大小寫。

vIndex = Application.Match(szClientName, oTable.ListColumns("Client Name").DataBodyRange, 0) 

oTable.ListRows(vIndex).Delete 'THIS DELETES THE TABLE ROW BUT THE SEARCH ON szClientName IS CASE SENSITIVE 

我該怎麼做我需要做的事情?

+0

Application.Match *不區分大小寫。 – Rory

回答

0

您的第一個解決方案不起作用,因爲oCell返回的Range對象與您的表/列表oTable不相關。

雖然不是一個完美的解決方案,這應該工作:

Set oCell = oTable.ListColumns("Client name").DataBodyRange.Find(what:=szClientName, MatchCase:=False, searchformat:=False) 
oCell.EntireRow.Delete 

我沒有把任何錯誤檢查這裏;如果它沒有發現任何代碼會拋出錯誤。