![](/img/trans.png)
[英]Excel VBA delete row if cell value not found in a column in other sheet
[英]Match value from sheet 1 A column to sheet 2 A column and delete the row if A value is not found
“ Set fn = sh2.Range(“ A:A”)。Find(Range.Value,,xlValues,xlWhole)“行給我“ Range.Value”上出現錯誤“參數不可選”。
我希望代碼從最后一行移到頂部。 查看Sheet1的列A的值。 然后在Sheet2的A列中搜索它,如果在那里,則刪除Sheet 1上的整行。但是,我無法弄清楚語法/問題,還是有更好的方法來重寫該行?
謝謝!
完整代碼(已編輯):
Sub Isitthere()
Dim c As Long, LR As Long
Dim sh1 As Worksheet, sh2 As Worksheet, fn As Range
Set sh1 = Application.Sheets("Current") 'Edit sheet name
Set sh2 = Application.Sheets("MTD") 'Edit sheet name
LR = sh1.Range("A" & Rows.Count).End(xlUp).Row
For c = LR To 2 Step -1
Set fn = sh2.Range("A:A").Find(sh1.Cells(c, 1).Value, , xlValues, xlWhole)
If Not fn Is Nothing Then
sh1.Cells(c.Row, Columns.Count).EntireRow.Delete
End If
Next c
End Sub
Range.Value
(實際上是Range().Value
)不是有效的語法,因為Range()
需要一個參數,而您沒有給它,這也會給.Find
一個無效的參數。
Range.Value
應該是sh1.Cells(c, 1).Value
或sh1.Range("A" & c).Value
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.