Sub SEVERNAYA_DOLINA() Dim r As Range Dim rgn As Range Set rgn = Application.ActiveSheet.UsedRange For Each r In rgn.Cells If (r.Cells.Interior.ColorIndex <> 6) And (r.Cells.Interior.ColorIndex <> -4142) Then r.Cells.ClearContents End If Next End Sub
[/vba] #
как его заставить работать по всей книге а не только по активной sheet?
есть вот такой код # [vba]
Код
Sub SEVERNAYA_DOLINA() Dim r As Range Dim rgn As Range Set rgn = Application.ActiveSheet.UsedRange For Each r In rgn.Cells If (r.Cells.Interior.ColorIndex <> 6) And (r.Cells.Interior.ColorIndex <> -4142) Then r.Cells.ClearContents End If Next End Sub
[/vba] #
как его заставить работать по всей книге а не только по активной sheet?lamak58
Sub SEVERNAYA_DOLINA() Dim r As Range Dim rgn As Range Dim sh As Sheets Cells.MergeCells = False For Each sh In ThisWorkbook.Worksheets If (r.Cells.Interior.ColorIndex <> 6) And (r.Cells.Interior.ColorIndex <> -4142) Then r.Cells.ClearContents End If Next For Each r In rgn.Cells If (r.Cells.Interior.ColorIndex <> 6) And (r.Cells.Interior.ColorIndex <> -4142) Then r.Cells.ClearContents End If Next End Sub
[/vba]
[moder]Чтобы оформить правильно код, его надо выделить и нажать кнопку # на панели инструментов в форме сообщения. Исправляйте[/moder]
пишет type mismatch :(
[vba]
Код
Sub SEVERNAYA_DOLINA() Dim r As Range Dim rgn As Range Dim sh As Sheets Cells.MergeCells = False For Each sh In ThisWorkbook.Worksheets If (r.Cells.Interior.ColorIndex <> 6) And (r.Cells.Interior.ColorIndex <> -4142) Then r.Cells.ClearContents End If Next For Each r In rgn.Cells If (r.Cells.Interior.ColorIndex <> 6) And (r.Cells.Interior.ColorIndex <> -4142) Then r.Cells.ClearContents End If Next End Sub
[/vba]
[moder]Чтобы оформить правильно код, его надо выделить и нажать кнопку # на панели инструментов в форме сообщения. Исправляйте[/moder]lamak58
Сообщение отредактировал lamak58 - Вторник, 14.06.2016, 17:05
Sub SEVERNAYA_DOLINA() Dim r As Range Dim rgn As Range
Cells.MergeCells = False For Each sh In ThisWorkbook.Worksheets Set rgn = sh.UsedRange For Each r In rgn.Cells If (r.Cells.Interior.ColorIndex <> 6) And (r.Cells.Interior.ColorIndex <> -4142) Then r.Cells.ClearContents End If Next Next End Sub
[/vba]
цикл то внутри надо [vba]
Код
Sub SEVERNAYA_DOLINA() Dim r As Range Dim rgn As Range
Cells.MergeCells = False For Each sh In ThisWorkbook.Worksheets Set rgn = sh.UsedRange For Each r In rgn.Cells If (r.Cells.Interior.ColorIndex <> 6) And (r.Cells.Interior.ColorIndex <> -4142) Then r.Cells.ClearContents End If Next Next End Sub
Sub SEVERNAYA_DOLINA() Dim r As Range Dim rgn As Range
For Each sh In ThisWorkbook.Worksheets Set rgn = sh.UsedRange For Each r In rgn.Cells r.MergeCells = False If (r.Cells.Interior.ColorIndex <> 6) And (r.Cells.Interior.ColorIndex <> -4142) Then r.Cells.ClearContents End If Next Next End Sub
Sub SEVERNAYA_DOLINA() Dim r As Range Dim rgn As Range
For Each sh In ThisWorkbook.Worksheets Set rgn = sh.UsedRange For Each r In rgn.Cells r.MergeCells = False If (r.Cells.Interior.ColorIndex <> 6) And (r.Cells.Interior.ColorIndex <> -4142) Then r.Cells.ClearContents End If Next Next End Sub
Sub SEVERNAYA_DOLINA() Dim r As Range Dim sh As Worksheet Application.ScreenUpdating = False For Each sh In ThisWorkbook.Worksheets Set rgn = sh.UsedRange For Each r In sh.UsedRange.Cells If r.Cells.Interior.ColorIndex > 0 Then If (r.Cells.Interior.ColorIndex <> 6) Then r.Cells = Empty End If Next Next End Sub
[/vba]
[vba]
Код
Sub SEVERNAYA_DOLINA() Dim r As Range Dim sh As Worksheet Application.ScreenUpdating = False For Each sh In ThisWorkbook.Worksheets Set rgn = sh.UsedRange For Each r In sh.UsedRange.Cells If r.Cells.Interior.ColorIndex > 0 Then If (r.Cells.Interior.ColorIndex <> 6) Then r.Cells = Empty End If Next Next End Sub
у меня всегда открыта книга со всеми макросами,откуда я их выполняю на другие книги .называется ochistka_yacheek,в видео когда макрос выбираю она указана и открыта внизу на панели задач %)
upd.я понял,этот код выполняется только если привязан к конкретной книге а как сделать чтобы он выполнялся,находясь в другой книге?применительно к любой другой открытой в данный момент.
у меня всегда открыта книга со всеми макросами,откуда я их выполняю на другие книги .называется ochistka_yacheek,в видео когда макрос выбираю она указана и открыта внизу на панели задач %)
upd.я понял,этот код выполняется только если привязан к конкретной книге а как сделать чтобы он выполнялся,находясь в другой книге?применительно к любой другой открытой в данный момент.lamak58
Сообщение отредактировал lamak58 - Среда, 15.06.2016, 13:30