2016-12-02 4 views
0

Я новичок в VBA, и у меня есть код, который я хочу подсчитать, сколько нет пустых строк от A2 до конца листа, но я продолжаю получать эта ошибка, а код следующим образом:Метод 'Range' объекта'_Global 'Сбой в VBA

Я не могу перебирать, что проблема

Благодаря Pudge

ответ

1

Простое исправление к Set:

Sub TicketCopy() 
    With Worksheets("Formulas") 
     Dim K As Range 
     Dim M As Long 
     Set K = Range(.Range("A2"), .Range("A2").End(xlDown)) 
     M = K.Rows.Count 
     MsgBox "The Rows Count=" & M 
    End With 
End Sub 

enter image description here

Обратите внимание, что это меньше, чем нижняя часть столбца.

+0

диапазонов без точки не ссылаются на рабочий лист «Формулы» – user3598756

+0

@ user3598756 ** OUCH **! Спасибо ........... Я исправлю код! –

+0

Понял, спасибо огромное! –

0

не ясно, что OP действительно нуждается («не пустая» клетка или «не пустая» ячейка, вытекающая из формул, или что-то еще)

так что я бросить всего несколько примеров:

Option Explicit 

Sub TicketCopy() 

    With Worksheets("Formulas") 
     With .Range("A2", .Cells(.Rows.Count, 1).End(xlUp)) '<--| reference column "A" cells from row 2 to last not empty one 

      ' all cells in range with formulas only 
      With .SpecialCells(xlCellTypeFormulas) 
       MsgBox "The Rows Count= " & .Count ' cells number 
       MsgBox "The Rows Count= " & WorksheetFunction.Count(.Cells) ' cells resulting "not blank" (a 'zero' is a "not blank") 
       MsgBox "The Rows Count= " & WorksheetFunction.CountIf(.Cells, "") ' cells resulting "blank" (a 'zero' is a "not blank") 
       MsgBox "The Rows Count= " & WorksheetFunction.CountBlank(.Cells) ' cells resulting "blank" (a 'zero' is a "not blank") 
      End With 

      'all cells in range 
      MsgBox "The Rows Count= " & .Count ' cells number 
      MsgBox "The Rows Count= " & WorksheetFunction.Count(.Cells) 'cells resulting "not blank" (a 'zero' is a "not blank") 
      MsgBox "The Rows Count= " & WorksheetFunction.CountIf(.Cells, "") 'cells resulting "blank" (a 'zero' is a "not blank") 
      MsgBox "The Rows Count= " & WorksheetFunction.CountBlank(.Cells) ' cells resulting "blank" (a 'zero' is a "not blank") 
     End With 
    End With 

End Sub