2015-06-08 19 views
-1

Мне нужно выбрать столбец, содержащий тысячи пустых ячеек, до последней строки, содержащей данные, которые обычно находятся в соседнем столбце, а затем заполнять выбор с формулой. До сих пор я использовал ctrl + ↓, чтобы найти последнюю строку столбца, который, как я знаю, не пуст, и используя это как контрольную точку для определения моего диапазона. Есть ли способ сделать это быстрее в VBA? Я совершенно новый для VBA, но моя работа была бы намного проще, если бы я мог это сделать. Заранее спасибо! :)Заполнение полупустого столбца формулой в Excel

+0

у вас есть какой-либо код или фрагмент –

ответ

0

Некоторые надежные способы поиска последних использованных ячеек, содержащих значения на листе:

.

Option Explicit 
Sub lastUsedCells()   'optimised for performance 
    Dim maxRow As Long 
    Dim maxCol As Long 
    With ActiveSheet 
     If WorksheetFunction.CountA(.UsedRange) > 0 Then  'if sheet is not empty 
      With .UsedRange 'restrict search area to UsedRange; (includes formats) 

       maxRow = .Rows.Count + 1      'last row in UsedRange 
       maxCol = .Columns.Count + 1      'last col in UsedRange 

       'first cell not empty in col A 
       If Len(.Cells(1, 1)) = 0 Then MsgBox .Cells(1, 1).End(xlDown).Row 
       'first cell not empty in row 1 
       If Len(.Cells(1, 1)) = 0 Then MsgBox .Cells(1, 1).End(xlToRight).Column 
       MsgBox .Cells(maxRow, 1).End(xlUp).Row   'last row in column A 
       MsgBox .Cells(1, maxCol).End(xlToLeft).Column 'last column in row 1 
       MsgBox .Find(_ 
          What:="*", _ 
          After:=.Cells(1, 1), _ 
          LookIn:=xlFormulas, _ 
          SearchOrder:=xlByRows, _ 
          SearchDirection:=xlPrevious).Row 'last row (longest col) 
       MsgBox .Find(_ 
          What:="*", _ 
          After:=.Cells(1, 1), _ 
          LookIn:=xlFormulas, _ 
          SearchOrder:=xlByColumns, _ 
          SearchDirection:=xlPrevious).Column 'last col (longest row) 
      End With 
     Else 
      MsgBox "Sheet " & .Name & " is empty" 
     End If 
    End With 
End Sub 

Подробнее: Finding last used cell in VBA

+0

Ах, спасибо! Это именно то, что я искал. :) Я искал SO с неправильной фразой, ха-ха. – slothy

Смежные вопросы