Как мне прописать условие, если, например, мне нужно выделить все ячейки, начинающиеся на букву q, а после этой буквы идёт число. Я пишу (вкратце):
if formular1c1="q.... а дальше не знаю, как сделать, чтобы он искал только те ячейки, в которых написано q1, q2, q3, q342, q543 и т. д. вручную писать это нереально.
21.06.2004, 19:18
Mozarello
Лучше такие вопросы в одной теме решать - чего плодить то?
Пример аналогичный, все ячейки начинающиеся на "q" переносятся на Лист2.
Sub MoveFormatCells()
Dim s As String
Sheets("Лист1").Select
For i = 1 To 100
For j = 1 To 100
s = Trim(Cells(i, j))
If Left(s, 1) = "q" Then
Sheets("Лист2").Cells(i, j) = Cells(i, j)
End If
Next
Next
End Sub
22.06.2004, 12:06
Nekis
Огромное спасибо 2 Mozarello, работа теперь занимает в 100 раз меньше времени!
Последний вопрос. Внизу я скопировал таблицу. Как мне сделать, чтобы
Строка, где написано Base была серого цвета и жирным шрифтом. Но не полностью, а так, чтобы только числа и само слово Base было таким.
Как я понимаю, надо написать цикл, чтобы с каждым шагом (направо от Base) ячейка становилась серой и с жирным шрифтом до тех пор, пока она белая и в рамке. Соответственно, когда цикл доходит до ячейки без заливки, без рамки и без значения, цикл должен заканчиваться.
Excellent 17% 17%
Very good34% 34%
Good 44% 44%
Fair 6% 6%
Base 154 154
Mean 2,38 2,38
Std. Dev. 0,83 0,83
Base 154 154
22.06.2004, 13:36
Mozarello
выход из цикла -
if Cells(i,j).[свойство ячейки или фонта]<>[значение свойства] then
Exit For
end if
Как обращаться к свойствам и их значениям? Создай макрос
меню\сервис\макрос\начать запись
и устанавливай любые фонты, заливки, рамки ячеек не задумываясь при этом особо о смысле жизни.
остановить макрос
посмотреть, что там в VBA написалось. Принять к сведению.
22.06.2004, 15:10
Nekis
Ещё один вопрос, сто пудов последний))))
Мне надо объединить ячейки. Условие такое: если в ней написано слово "Total", то её надо объеденить с нижней ячейкой. условие я прописал с помощью того же цикла, но не могу написать, чтоб её объединяло. Например,
If Cells(i, j).FormulaR1C1 = "Total" Then
ActiveSheet.Cells(Вот тут я не пойму что написать! А идея, чтоб было i,j + i+1,j).select
selection.merge
End If
22.06.2004, 15:42
Nekis
Sorry!! Вопрос даже упрощается, как объединить все ячейки серого цвета, которые обведены в рамку. То есть, например, есть ячейка Total. Под ней есть пустая ячейка. Они обведены в одну рамку и обе серого цвета. Надо просто объеденить ВСЕ такие ячейки на ВСЕМ листе. Вот важнейший и последнийй вопрос!
Заранее благодарю
24.06.2004, 12:50
Mozarello
Вопрос скорее в разработке алгоритма, чем просто программирование. Задача где-то из серии задач искусственного интеллекта - определение замкнутого контура вокруг точки. Надо подумать.