Другие языки программирования и технологии
VBA. Очистка ячеек...
Есть ячейки, которые нужно сохранить (распологаются спонтанно, никакой связи между их адресами нет), все остальные - очистить. Возможно ли их как-то... заблокировать?
Что-то типа этого?
Итак, процедура VBA, которая автоматически меняет свойство блокировки ячеек на основе цвета. Цвет для ячеек назначается не вручную, а на основе условного форматирования. В процедуре необходимо указать диапазон в листах, в рамках которого находятся искомые ячейки
Private Sub CommandButton1_Click()
' Выключаем автокалькуляцию
xlCalc = Application.Calculation
Application.Calculation = xlCalculationManual
x1 = 1 ‘ ширина области для анализа ячеек по горизонтали
y1 = 1 ‘ ширина области для анализа ячеек по вертикали
startX = 10 ‘ начало области для анализа ячеек по горизонтали
startY = 10 ‘ начало области для анализа ячеек по вертикали
cn = 0
For Each Sh In Sheets
Worksheets(Sh.Name).Activate
For x = startX To 21 + x1
For y = startY To 14 + y1
If ActiveSheet.Cells(y, x).FormatConditions.Count > 0 Then cn = cn + 1
Next
Next
Next
cnt = 0
For Each Sh In Sheets
Worksheets(Sh.Name).Activate
For x = startX To 21 + x1
For y = startU To 14 + y1
If ActiveSheet.Cells(y, x).FormatConditions.Count > 0 Then
ActiveSheet.Cells(y, x).Select
tmp = ActiveSheet.Cells(y, x).Formula
evl = ActiveSheet.Cells(y, x).FormatConditions(1).Formula1
If tmp = "" Then
ActiveSheet.Cells(y, x).FormulaLocal = evl
If IsError(ActiveSheet.Cells(y, x)) Then
ActiveSheet.Cells(y, x).Locked = True
Else
If ActiveSheet.Cells(y, x).Value = "False" Then
ActiveSheet.Cells(y, x).Locked = True
Else
ActiveSheet.Cells(y, x).Locked = False
End If
End If
End If
ActiveSheet.Cells(y, x).Formula = tmp
cnt = cnt + 1
Application.StatusBar = Round(cnt / cn * 100, 1) & "%"
End If
Next
Next
Next
'Включаем автокалькуляцию
Application.Calculation = xlCalc
End Sub
Итак, процедура VBA, которая автоматически меняет свойство блокировки ячеек на основе цвета. Цвет для ячеек назначается не вручную, а на основе условного форматирования. В процедуре необходимо указать диапазон в листах, в рамках которого находятся искомые ячейки
Private Sub CommandButton1_Click()
' Выключаем автокалькуляцию
xlCalc = Application.Calculation
Application.Calculation = xlCalculationManual
x1 = 1 ‘ ширина области для анализа ячеек по горизонтали
y1 = 1 ‘ ширина области для анализа ячеек по вертикали
startX = 10 ‘ начало области для анализа ячеек по горизонтали
startY = 10 ‘ начало области для анализа ячеек по вертикали
cn = 0
For Each Sh In Sheets
Worksheets(Sh.Name).Activate
For x = startX To 21 + x1
For y = startY To 14 + y1
If ActiveSheet.Cells(y, x).FormatConditions.Count > 0 Then cn = cn + 1
Next
Next
Next
cnt = 0
For Each Sh In Sheets
Worksheets(Sh.Name).Activate
For x = startX To 21 + x1
For y = startU To 14 + y1
If ActiveSheet.Cells(y, x).FormatConditions.Count > 0 Then
ActiveSheet.Cells(y, x).Select
tmp = ActiveSheet.Cells(y, x).Formula
evl = ActiveSheet.Cells(y, x).FormatConditions(1).Formula1
If tmp = "" Then
ActiveSheet.Cells(y, x).FormulaLocal = evl
If IsError(ActiveSheet.Cells(y, x)) Then
ActiveSheet.Cells(y, x).Locked = True
Else
If ActiveSheet.Cells(y, x).Value = "False" Then
ActiveSheet.Cells(y, x).Locked = True
Else
ActiveSheet.Cells(y, x).Locked = False
End If
End If
End If
ActiveSheet.Cells(y, x).Formula = tmp
cnt = cnt + 1
Application.StatusBar = Round(cnt / cn * 100, 1) & "%"
End If
Next
Next
Next
'Включаем автокалькуляцию
Application.Calculation = xlCalc
End Sub
Ербол Умбетов
Моя благодарность не знает границ!
Похожие вопросы
- Не могу разобраться с VBA Excel 2003 как копировать содер жимое одной ячейки в другую
- Нужен простой ЯП как для хобби, так и вспомогательный в работе, что то на замену VBA.
- Прошу теоретической помощи с VBA! (не кодер)
- VBA - Парсинг в Excel-VBA курса ЦБ
- Програмирование в VBA
- VBA EXCEL. Где найти список формул по английски??? чтоб потом вписывать формулы через VBA.
- Вопрос по Excel. Подставить значение ячейки в адрес и вывести результат адреса.
- Как в Excel задать формулу для ячейки ?
- html как создать таблицу с одним миллионом ячеек. Ячейки динамического размера. Дальше внутри.
- Excel. Макрос. Найти в Листе1 значение активной ячейки из Листа2.