第二个Q在这里,仍在学习,但努力做到最好!
问题:
我想运行一个宏,它取一个工作表的名称(当时是活动工作表)并用它来删除工作表中的每一行" PD"其中包含该名称"以前的活动表格"在专栏" M"。比宏应该回到那个"之前的活动表"并用颜色填充一些单元格(该部分应该没问题)
我尝试了一些事情,并在下面的其他主题的帮助下和记录按钮,我设法得到这个代码,这不起作用
Sub FindandDelete
Sheets("PD").Select
Range("M").Select
With ActiveSheet
.AutoFilterMode = False
With Range("M1", Range("M" & Rows.Count).End(xlUp))
.AutoFilter 1, ActiveSheet.Previous.Name.Select
On Error Resume Next
.Offset(1).SpecialCells(12).EntireRow.Delete
End With
.AutoFilterMode = False
End With
ActiveSheet.Previous.Select
Range("N16,N17").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 49407
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("A1").Select
End Sub
对于激活表: How to activate a specific worksheet in Excel
希望任何人都可以提供帮助,如果需要更多努力或解释,请高兴听到。
答案 0 :(得分:2)
说实话,你的代码可能会有一些调整,但我宁愿从头开始使用它:
Sub FindAndDelete
Dim strAName As String
Dim lngCounter as Long
strAName = ActiveSheet.Name
With Worksheets("PD")
For lngCounter = .Cells(Rows.Count, 13).End(xlUp).row to 1 Step -1
if .Cells(lngcounter, 13).value = strAName then
.Rows(lngCounter).Delete
end if
Next lngCounter
End with
'Do your coloring stuff, which you said is fine now
End Sub
您应该避免更换床单。通常没有必要激活"或"选择"无论在VBA中,它只是人类必须要做的事情,因此MacroRecorder使用它......