2016-04-25 82 views
1

秒Q在这里,仍在学习,但正在努力做到最好!如果工作表'X'中的单元格包含工作表'y'的名称,则删除行工作表'x'

问:

我想运行一个宏,这需要工作表的名称(这是在那一刻活动工作表),并使用它来删除表“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

删除行: http://www.mrexcel.com/forum/excel-questions/537771-delete-row-if-specific-cell-value-matches-value-found-another-worksheet.html

希望任何人都可以帮助,如果需要更多的努力或解释,很高兴听到。

+0

'采用随机工作表的名称(它是活动的如果你想随机抽取一张表格,那么你为什么提到'(这是当时的活动表格)'? – newguy

+1

我**高度**建议通过阅读[本SO线程](http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros)如何避免使用'.Select'''.Activate',它可以为您节省许多麻烦。 – BruceWayne

+0

@newguy:我编辑了我的问题:它应该取得当时活动工作表的名称,但活动工作表可能有所不同(取决于选择哪个工作表),所以不是随机工作表。希望现在清楚。 – bart1701

回答

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中通常不需要“激活”或“选择”anyhting,这只是人类必须做的事情,因此MacroRecorder使用它...

+1

它会留下一些行,因为删除行会将其移动,因此每次删除行时必须将lncounter放置1,或者最好从已用区域的最后一行循环到第一个 – newguy

+0

好点。我经常忘记循环下去 – Sergej

+0

@sergej:谢谢你的努力。不知道为什么,但如果我在活动工作表中运行,不幸的是,没有任何反应?任何线索为什么? – bart1701

相关问题