Выделение значений с формулами суммирования жирным шрифтом

Программирование на Visual Basic for Applications
sonata
Постоялец
Постоялец
 
Сообщения: 321
Зарегистрирован: 31.07.2002 (Ср) 13:18
Откуда: Russia

Выделение значений с формулами суммирования жирным шрифтом

Сообщение sonata » 15.07.2003 (Вт) 10:09

Вопрос следующего рода:
Я делаю на Excel-листе к-л расчеты...
Потом хочу нажать кнопку с макросом, значения данного листа анализируются на предмет формул суммирования "=СУММ", и значение этой ячейки выделяется жирным цветом.
Как пройти весь лист на предмет данного анализа?
Или это будет очень долго?
Т.е. я хочу видеть 2 +3 =5Чтобы Итог был жирненьким...

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 15.07.2003 (Вт) 10:40

Код: Выделить всё
for each cll in cellrange
if instr(1,cll.formualr1c1,"+",vbtextcompare)>0 then cll.font.bold = true
next cll


а cellrange уже сама настраивай как тебе надо. Хоть лист хоть selection

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 15.07.2003 (Вт) 13:21

Э... А если у ячейки текстовый формат и в ней записан текст "=супер+мега+рулез+текст="? :)
Лучше уж пользоваться халявой, в именно свойством Range.HasFormula
Примерно:
Код: Выделить всё
For Each objCell In ...
  If objCell.HasFormula Then
    objCell.Font.Bold = (InStr(objCell.FormulaR1C1,"+")>0)
  End If
Next objCell
Lasciate ogni speranza, voi ch'entrate.

sonata
Постоялец
Постоялец
 
Сообщения: 321
Зарегистрирован: 31.07.2002 (Ср) 13:18
Откуда: Russia

Сообщение sonata » 15.07.2003 (Вт) 15:34

Как задать диапазон In...

Не работает следующий код...Где ошибка?

Код: Выделить всё
Public Sub natasha()
Dim objCell As Object
Dim myRange As Range
myRange = Range(Cells(1, 1), Cells(10, 2000))
For Each objCell In myRange
  If objCell.HasFormula Then
    objCell.Font.Bold = (InStr(objCell.FormulaR1C1, "+") > 0)
  End If
Next objCell
End Sub

Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Сообщение Calvin » 15.07.2003 (Вт) 20:06

А ты поставь Set перед myRange = Range(Cells(1, 1), Cells(10, 2000))
- это ведь объектная переменная (myRange) :wink:
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

sonata
Постоялец
Постоялец
 
Сообщения: 321
Зарегистрирован: 31.07.2002 (Ср) 13:18
Откуда: Russia

Сообщение sonata » 16.07.2003 (Ср) 9:34

Dim myRange As Range
или

Dim myRange As Object

Но все равно, поставив волшебное слово Set
возникает ошибка Application-defined or Object-Defined Error[/b]

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 16.07.2003 (Ср) 10:42

В какой строчке то хоть возникает? Прогони макрос в режиме отладки и посмотри, где именно ошибка.

Но мне так кажется что Range неверно задан.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 5

    TopList