2014-01-13 88 views
0

我有几个列范围在Excel J10:J111,N10:N111,R10:R111等了,我需要一个下拉列表替换空白单元格,并保留其他单元格区域因为它们是(即它们都是“不适用”)。COUNTIF代码VBA

我设法让它通过使用下面的代码工作:

Range("N10:N111").Select 
    Selection.SpecialCells(xlCellTypeBlanks).Select 
    With Selection.Validation 
    .Delete 
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ 
    xlBetween, Formula1:="0,1,2,3,4,5" 
    .IgnoreBlank = True 
    .InCellDropdown = True 
    .InputTitle = "" 
    .ErrorTitle = "" 
    .InputMessage = "" 
    .ErrorMessage = "" 
    .ShowInput = True 
    .ShowError = True 
    End With 

不幸的是,如果我有在范围内没有空白单元格(因为它在某些情况下发生)宏关闭。

有没有告诉代码“如果只有‘N/A’跳过宏这一节,并继续到下一个的方式

+3

测试第一:'如果不Selection.SpecialCells(xlCellTypeBlanks)是没有那么...' –

回答

1

尝试使用下面的代码的修改:

Sub Test() 
    Dim rng As Range 

    On Error Resume Next 
    Set rng = Nothing 
    Set rng = Range("N10:N100").SpecialCells(xlCellTypeBlanks) 
    If Not rng Is Nothing Then 
     With rng.Validation 
      .Delete 
      .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ 
      xlBetween, Formula1:="0,1,2,3,4,5" 
      .IgnoreBlank = True 
      .InCellDropdown = True 
      .InputTitle = "" 
      .ErrorTitle = "" 
      .InputMessage = "" 
      .ErrorMessage = "" 
      .ShowInput = True 
      .ShowError = True 
     End With 
    End If 
    On Error GoTo 0 
End Sub 
+1

这是惊人的 – user3191114

+0

工作就像一个魅力太谢谢你了!! – user3191114