powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA в Excel, кол-во заполненных ячеек
7 сообщений из 7, страница 1 из 1
VBA в Excel, кол-во заполненных ячеек
    #34037099
Sanek78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как программно обойти все заполненные ячейки, имеющие любое значение, в рабочем листе, и обработать их по условию (если цвет текста синий, тогда преобразовать в число). Заранее число ячеек имеющих хоть какое либо значение неизвестно.
...
Рейтинг: 0 / 0
VBA в Excel, кол-во заполненных ячеек
    #34037169
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот пример, переделать не сложно
Просмотрите модуль книги там есть процедура Convert
...
Рейтинг: 0 / 0
VBA в Excel, кол-во заполненных ячеек
    #34037175
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это тем, кому лень качать (например таким как я)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Sub Convert()
'Номер столбца в котором данные
Const intDataColumn =  2 
    Dim intLastRow%, i%
'Находим последнюю строку откуда начинаются данные (quote: Заранее число ячеек имеющих хоть какое либо значение неизвестно)
    intLastRow = Cells.SpecialCells(xlLastCell).Row
    Do While (intLastRow >  1 ) And (Trim(Cells(intLastRow, intDataColumn)) = "")
        intLastRow = intLastRow -  1 
    Loop
'данные есть
    If Trim(Cells(intLastRow, intDataColumn)) <> "" Then
        For i =  2  To intLastRow
        'если ячейка выделена красным цветом и содержит числовые данные
            If (Cells(i, intDataColumn).Font.Color = vbRed) And (IsNumeric(Cells(i, intDataColumn).Value)) Then
                Cells(i, intDataColumn).FormulaR1C1 = CStr(Cells(i, intDataColumn).Value)
                Cells(i, intDataColumn).Select
                Cells(i, intDataColumn).NumberFormat = "General" 'или же Cells(i, intDataColumn).NumberFormat = "0.00"
            End If
        Next
    Else
'данных нет
        MsgBox "Отсутствуют данные!", vbInformation
    End If
End Sub
...
Рейтинг: 0 / 0
VBA в Excel, кол-во заполненных ячеек
    #34037186
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
    Dim rng As Range
    For Each rng In ActiveSheet.UsedRange
        If rng <> "" Then
            If rng.Font.ColorIndex =  5  Then rng = Val(rng)
        End If
    Next
...
Рейтинг: 0 / 0
VBA в Excel, кол-во заполненных ячеек
    #34037238
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересная вещь UsedRange, первый раз вижу
...
Рейтинг: 0 / 0
VBA в Excel, кол-во заполненных ячеек
    #34037567
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orunbekИнтересная вещь UsedRange, первый раз вижу
да сдесь полно примеров с UsedRange
Поиск по "UsedRange"
но надо иметь ввиду следующее
допустим в пустом листе вводим в ячейку "D5" значение
"UsedRange" возвращает "A1:D5", если потом удалить значение из "D5",
то "UsedRange" все равно возвращает "A1:D5"
вообщем это область с которой работали хоть один раз.
...
Рейтинг: 0 / 0
VBA в Excel, кол-во заполненных ячеек
    #34038050
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну это понятно, т.е. область которая выделяется при Ctrl+Shift+End
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA в Excel, кол-во заполненных ячеек
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]