Сейчас столкнулся с новой проблемой - мне как-то нужно очищать форму - несколько сотен ячеек, раскиданных по всему листу, нужно обнулить. Сейчас они у меня выделены другим цветом и фоном, могу узнать диапазоны, выделив все с помощью Ctrl, а вот что дальше делать с ними - без понятия. Может есть мысли? Выкладываю кусочек проекта, нужна кнопочка, при нажатии которой выделенные красным шрифтом и желтым фоном будут обнуляться
Сейчас столкнулся с новой проблемой - мне как-то нужно очищать форму - несколько сотен ячеек, раскиданных по всему листу, нужно обнулить. Сейчас они у меня выделены другим цветом и фоном, могу узнать диапазоны, выделив все с помощью Ctrl, а вот что дальше делать с ними - без понятия. Может есть мысли? Выкладываю кусочек проекта, нужна кнопочка, при нажатии которой выделенные красным шрифтом и желтым фоном будут обнулятьсяDEAD_MaRoZ
DEAD_MaRoZ, для макроса лежит не в той ветке форума. А так предлагаю Вам такой: [vba]
Код
Sub Ред_по_текст_заливке() Dim c1 As Range For Each c1 In ActiveSheet.UsedRange.Cells If c1.Interior.ColorIndex = 19 And c1.Font.ColorIndex = 3 Then c1 = 0 End If Next c1 End Sub
[/vba] А чтобы определить индексы текста и заливки, можно использовать:
[vba]
Код
Sub текст_заливка_Величины() Dim c As Range, c1 As Range Set c = Application.InputBox("Выделите ячейку," & _ "куда можно вывести данные о формате (цвет заливки и цвет шрифта) интересующей Вас ячейки", "ячейка для вывода данных", Type:=8) Set c1 = Application.InputBox("Выделите интересующую Вас ячейку (для определения её формата)", "интересующая ячейка", Type:=8)
c = "Индекс цвета заливки: " & c1.Interior.ColorIndex c.Offset(1) = "Индекс цвета текста: " & c1.Font.ColorIndex
End Sub
[/vba]
DEAD_MaRoZ, для макроса лежит не в той ветке форума. А так предлагаю Вам такой: [vba]
Код
Sub Ред_по_текст_заливке() Dim c1 As Range For Each c1 In ActiveSheet.UsedRange.Cells If c1.Interior.ColorIndex = 19 And c1.Font.ColorIndex = 3 Then c1 = 0 End If Next c1 End Sub
[/vba] А чтобы определить индексы текста и заливки, можно использовать:
[vba]
Код
Sub текст_заливка_Величины() Dim c As Range, c1 As Range Set c = Application.InputBox("Выделите ячейку," & _ "куда можно вывести данные о формате (цвет заливки и цвет шрифта) интересующей Вас ячейки", "ячейка для вывода данных", Type:=8) Set c1 = Application.InputBox("Выделите интересующую Вас ячейку (для определения её формата)", "интересующая ячейка", Type:=8)
c = "Индекс цвета заливки: " & c1.Interior.ColorIndex c.Offset(1) = "Индекс цвета текста: " & c1.Font.ColorIndex
Спасибо. Записал макрос кнопочкой, выкинул с кода кучу мусора и глупых телодвижений и получился примитивный код
[vba]
Код
Sub Обнулить_таблицы() Union(Range("A159:A160,F159:F160,E161,B170:B173,A3:E16,E17,A21:F34,E35,A39:A52,C39:D52,E53,F39:F52,I39:I52,A57:A70,C57:D70,E71,F57:F70" _ ), Range("A153:A154,F153:F154,E155,A75:F88,E89,A93:F106,E107,A111:F124,E125,F129:F130,A129:A130,E131,A135:A136,F135:F136,E137,A141:A142,F141:F142,E143,A147:A148,F147:F148,E149,I57:I70")).Select Selection.FormulaR1C1 = "0" Range("A2").Activate End Sub
[/vba] [moder]Оформляйте коды тегами (кнопка #)[/moder]
Спасибо. Записал макрос кнопочкой, выкинул с кода кучу мусора и глупых телодвижений и получился примитивный код
[vba]
Код
Sub Обнулить_таблицы() Union(Range("A159:A160,F159:F160,E161,B170:B173,A3:E16,E17,A21:F34,E35,A39:A52,C39:D52,E53,F39:F52,I39:I52,A57:A70,C57:D70,E71,F57:F70" _ ), Range("A153:A154,F153:F154,E155,A75:F88,E89,A93:F106,E107,A111:F124,E125,F129:F130,A129:A130,E131,A135:A136,F135:F136,E137,A141:A142,F141:F142,E143,A147:A148,F147:F148,E149,I57:I70")).Select Selection.FormulaR1C1 = "0" Range("A2").Activate End Sub
[/vba] [moder]Оформляйте коды тегами (кнопка #)[/moder]DEAD_MaRoZ
Сообщение отредактировал Pelena - Воскресенье, 03.04.2016, 09:39