Excel 宏读取单元格值,如果该值存在,则在表中查找,如果存在,则删除表行并上移
忘记密码了: 它返回对象变量error。 我试着记录一个宏,但Find不能正常使用copy和paste,然后,宏记录我所在的实际行,而不是一个变量 我也尝试了Cells.AutoFilter字段:=2,Criteria1:=x,而不是Find,但这将返回AutoFilter range类failed。我卡住了。 希望能有帮助Excel 宏读取单元格值,如果该值存在,则在表中查找,如果存在,则删除表行并上移,excel,erase,vba,Excel,Erase,Vba,忘记密码了: 它返回对象变量error。 我试着记录一个宏,但Find不能正常使用copy和paste,然后,宏记录我所在的实际行,而不是一个变量 我也尝试了Cells.AutoFilter字段:=2,Criteria1:=x,而不是Find,但这将返回AutoFilter range类failed。我卡住了。 希望能有帮助 Sub alta() ' ' alta Macro x = Range("I3").Select Selection.Copy Selection.Find(What:=x
Sub alta()
'
' alta Macro
x = Range("I3").Select
Selection.Copy
Selection.Find(What:=x, After:=ActiveCell, LookIn:=xlValues, LookAt _
:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
True, SearchFormat:=False).Activate
Application.CutCopyMode = False
Selection.EntireRow.Delete
Range("I3").Select
Selection.ClearContents
End Sub
这应该让你开始:
Private Sub CommandButton1_Click()
If Range("I3").Value <> "" Then
If IsError(Application.Match(Range("I3"), Range("B3:B20"), 0)) Then
MsgBox ("No Match")
Else
foundRow = Application.Match(Range("I3"), Range("B3:B20"), 0) + 2
Range("A" & foundRow & ":B" & foundRow).Delete Shift:=xlUp
End If
End If
End Sub
请告诉我们你试过什么?询问代码的问题必须表明对正在解决的问题的最低理解。包括尝试的解决方案、为什么它们不起作用以及预期的结果。另见:嘿,波特兰先生。它工作得完美无缺。我不知道foundRow线。我忘记提到的一件事是如何用一个新的空行替换删除的行,这样我就不会每次运行它时都得到负一行。以保持总行数不变。然后它应该自动过滤,所以新的下降,不停留在桌子中间。我清楚了吗?好兄弟。把最后一部分弄明白了。谢谢