我到处寻找这个,但找不到它的例子。我有一个代码搜索列并删除包含该单元格中的确切值的所有行。
我想让这个代码可以在任何带有两个输入框的工作表中使用,第一个要求用户查看哪个列(这就是我遇到的问题)
和第二个要求标准。
现有代码就是这样。
Sub OCR()
Dim Firstrow As Long
Dim Lastrow As Long
Dim Lrow As Long
Dim CalcMode As Long
Dim ViewMode As Long
With Application
CalcMode = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With
With ActiveSheet
.Select
ViewMode = ActiveWindow.View
ActiveWindow.View = xlNormalView
.DisplayPageBreaks = False
Firstrow = .UsedRange.Cells(1).Row
Lastrow = .UsedRange.Rows(.UsedRange.Rows.Count).Row
For Lrow = Lastrow To Firstrow Step -1
'Amend test
With .Cells(Lrow, "B")
If Not IsError(.Value) Then
If .Value = "Test" Then .EntireRow.Delete
End If
End With
'END of loop
Next Lrow
End With
所以这将删除Test在相关列(B)中的所有行,但是如何使用InputBox来决定列和要查找的值。
答案 0 :(得分:2)
替换:
With .Cells(Lrow, "B")
使用:
s = Application.InputBox("Pick a cell", Type:=8).Address(1, 0)
lettre = Split(s, "$")(0)
With .Cells(Lrow, lettre)
修改#1 强>
当InputBox出现时,使用鼠标选择所需列中的任何单元格。
修改#2 强>
当InputBox出现时,键入单元格地址以选择所需列中的任何单元格。您的ScreenUpdating设置禁止使用鼠标。
修改#3 强>
炫耀使用的最终方法是:
s = Application.InputBox("Enter Column Data", Type:=2)
With .Cells(Lrow, s)