Кратко суть задачи в названии, чуть прдробней: Делается задача по АСУТП, технолог расписывает (раскрашивает!) ячейки в соответствии со структурной схемой клапанов, которые я должен буду включить при том или ином процессе. По итогу в результате мне нужно будет получить из 16(15) ячеек строки двоичное число, с которым оперировать дальше. Задач будет очень много, боюсь ошибиться при ручном переписывании, поэтому пытался сделать следующее, - в выделенной области по нажатию волшебной кнопки присвоить всем незакрашенным ячейкам значение FALSE, всем зеленым (к примеру) TRUE. Кроме зеленых есть еще красные, с ними впоследствие нужно будет проделать примерно то же.
Собственных знаний и знания знакомых не хватило, обращаюсь к коллективному разуму, - куда копать?
Здравствуйте!
Кратко суть задачи в названии, чуть прдробней: Делается задача по АСУТП, технолог расписывает (раскрашивает!) ячейки в соответствии со структурной схемой клапанов, которые я должен буду включить при том или ином процессе. По итогу в результате мне нужно будет получить из 16(15) ячеек строки двоичное число, с которым оперировать дальше. Задач будет очень много, боюсь ошибиться при ручном переписывании, поэтому пытался сделать следующее, - в выделенной области по нажатию волшебной кнопки присвоить всем незакрашенным ячейкам значение FALSE, всем зеленым (к примеру) TRUE. Кроме зеленых есть еще красные, с ними впоследствие нужно будет проделать примерно то же.
Собственных знаний и знания знакомых не хватило, обращаюсь к коллективному разуму, - куда копать?VaBo
Sub TrueFalse() Application.EnableEvents = False Selection = False For Each cell In Selection If cell.Interior.Color = 5287936 Then cell.Value = True Next Application.EnableEvents = True End Sub
[/vba]
примерно так [vba]
Код
Sub TrueFalse() Application.EnableEvents = False Selection = False For Each cell In Selection If cell.Interior.Color = 5287936 Then cell.Value = True Next Application.EnableEvents = True End Sub
Да все верно, это оно. Расположить в моддуле книги и запускать при выделенной области обработки. Для того чтоб не портиь вид можно в ячейках установит пользовательский формат ;;; . Значения False/True не будут показаны и так как не помещаются в ваши ячейки, то не будут показаны как ###
Да все верно, это оно. Расположить в моддуле книги и запускать при выделенной области обработки. Для того чтоб не портиь вид можно в ячейках установит пользовательский формат ;;; . Значения False/True не будут показаны и так как не помещаются в ваши ячейки, то не будут показаны как ###bmv98rus
Замечательный Временно просто медведь , процентов на 20.
Спрошу еще, - число 5287936 для зеленого, а как для красного из того же файла получить? Прямой перевод из RGB в десятичный ничего не дает, гугл отвечает, что не все так просто, как могло казаться...
Спрошу еще, - число 5287936 для зеленого, а как для красного из того же файла получить? Прямой перевод из RGB в десятичный ничего не дает, гугл отвечает, что не все так просто, как могло казаться...VaBo
Да, но сейчас я могу только "перекрасить", файл сильно разросся. Но чтобы перекрасить (при помощи того же VBA) нужно знать исходный цвет, я правильно понимаю? 5287936 = 16#50B000 это rgb(80, 176, 0), далеко от зеленого, хотя бралось из палитры "основные цвета" Как по-простому можно вывести цвет ячейки в MsgBox, к примеру?
Добавлю, попробовал чистый красный 255,0,0 воткнуть, и все равно цифра FF0000 = 16711680 не прокатывает.
Да, но сейчас я могу только "перекрасить", файл сильно разросся. Но чтобы перекрасить (при помощи того же VBA) нужно знать исходный цвет, я правильно понимаю? 5287936 = 16#50B000 это rgb(80, 176, 0), далеко от зеленого, хотя бралось из палитры "основные цвета" Как по-простому можно вывести цвет ячейки в MsgBox, к примеру?
Добавлю, попробовал чистый красный 255,0,0 воткнуть, и все равно цифра FF0000 = 16711680 не прокатывает.VaBo
Сообщение отредактировал VaBo - Вторник, 23.03.2021, 21:56