Официальный сайт студ.городка НГТУ
Учеба » Требуется помощь. Задача: написать макрос в Excel 

#1  04.12.09 13:27

Требуется помощь. Задача: написать макрос в Excel

Простой по идее должен быть макрос, но я с ними никогда не работал, поэтому хз что и куда писать.
Суть задачи: если содержимое ячеек С D E в строках от 1 и далее (например С45 и D45 и E45) пустое, то строка удаляется и сканирование идет дальше, доходит до, например С100 и D100 и E100 и опять они все три пустые - вся строка удаляется.
Скиньте сюда текст макроса, если кому не сложно такое написать.

Offline

#2  04.12.09 16:42

Re: Требуется помощь. Задача: написать макрос в Excel

в смысле удаляются? тебе какой-то массив нужен?

Offline

#3  04.12.09 17:23

Re: Требуется помощь. Задача: написать макрос в Excel

удаляются из листа.
Скажем так, - есть список, где в колонке "А" всегда указано наименование, а в колонках C,D,E могут быть некие числа. Либо колонки C,D,E могут быть пустыми, так вот мне надо чтобы при совпадении С=пусто, D=пусто и E=пусто, независимо от того есть что-то в "А" или нет эта строка АCDE просто удалялась из листа.

Offline

#4  04.12.09 20:40

Re: Требуется помощь. Задача: написать макрос в Excel

Sub DeleteEmptyRows()   
    LastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count   
    Application.ScreenUpdating = False   
    For r = LastRow To 1 Step -1   
        If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete   
    Next r   
End Sub

Offline

#5  04.12.09 20:47

Re: Требуется помощь. Задача: написать макрос в Excel

Удаление всех пустых строк

Offline

#6  04.12.09 23:52

Re: Требуется помощь. Задача: написать макрос в Excel

так они кагбе не пустые. т.е там изначально в колонке "А" могут быть данные, т.е строка не пустая.
важно чтобы в колонках C D и E не было данных и вот тогда уже строка бы удалялась из листа

Offline

#7  05.12.09 00:40

Re: Требуется помощь. Задача: написать макрос в Excel

Function NoBlanks(DataRange As Range) As Variant()   
 
    Dim N As Long   
    Dim N2 As Long   
    Dim Rng As Range   
    Dim MaxCells As Long   
    Dim Result() As Variant   
    Dim R As Long   
    Dim C As Long   
       
    MaxCells = Application.WorksheetFunction.Max( _   
        Application.Caller.Cells.Count, DataRange.Cells.Count)   
    ReDim Result(1 To MaxCells, 1 To 1)   
       
    For Each Rng In DataRange.Cells   
        If Rng.Value <> vbNullString Then   
            N = N + 1   
            Result(N, 1) = Rng.Value   
        End If   
    Next Rng   
    For N2 = N + 1 To MaxCells   
        Result(N2, 1) = vbNullString   
    Next N2   
       
    If Application.Caller.Rows.Count = 1 Then   
        NoBlanks = Application.Transpose(Result)   
    Else   
        NoBlanks = Result   
    End If   
 
End Function   

немного переделать надо

Offline

#8  05.12.09 12:34

Re: Требуется помощь. Задача: написать макрос в Excel

ох..ть =) спасибо =) как проверю работоспособность отпишусь.

Offline

Учеба » Требуется помощь. Задача: написать макрос в Excel 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.027 сек.
Выполнено 14 запросов.