powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Закраска ячеек в Excel с помощью VBA
6 сообщений из 6, страница 1 из 1
Закраска ячеек в Excel с помощью VBA
    #36288800
Фотография lopuxi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем здрасте!
У меня вот возникла вот такая задача, нужно закрашивать ячейки, не не все в подряд... и тут возникла проблема.
Во вложенном файле выложил фото сетки.
Может кто знает как бы сделать так что бы программа различала текст? то есть.
пн, вт, ср, чт, пт. - дни недели
пн-пт - дни когда выходит данная программа.
а значит ячейки пн, вт, ср, чт, пт - должны быть закрашены...
...
Рейтинг: 0 / 0
Закраска ячеек в Excel с помощью VBA
    #36291488
.Михаил.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lopuxi, во такая функция на рассмотрение
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Function MyFunc(ByVal mDays As String, ByVal mDay As String) As Boolean
Dim xDay( 1  To  7 ) As String, i As Integer, i1 As Integer, res() As String, mReturn As Boolean
Dim day1 As Integer, day2 As Integer, day3 As Integer
mDays = Replace(mDays, " ", ""): mDay = Replace(mDay, " ", "") ' удаление пробелов
xDay( 1 ) = "пн": xDay( 2 ) = "вт":: xDay( 3 ) = "ср": xDay( 4 ) = "чт"
xDay( 5 ) = "пт": xDay( 6 ) = "сб": xDay( 7 ) = "вс"
mReturn = False
res = Split(mDays, ",")
For i =  0  To UBound(res)
    If res(i) Like "??-??" Then
        For i1 =  1  To  7 
            If Mid(res(i),  1 ,  2 ) = xDay(i1) Then day2 = i1
            If Mid(res(i),  4 ,  2 ) = xDay(i1) Then day3 = i1
            If mDay = xDay(i1) Then day1 = i1
        Next
        If day2 <= day1 And day1 <= day3 Then mReturn = True
    End If
    If res(i) Like "??" And (res(i) = mDay) Then mReturn = True
Next
MyFunc = mReturn
End Function
например
Код: plaintext
1.
2.
3.
4.
5.
MsgBox MyFunc("ср", "ср")
MsgBox MyFunc("ср, сб", "ср")
MsgBox MyFunc("пн-вс", "ср")
MsgBox MyFunc("пн-ср,пт", "ср")
MsgBox MyFunc("пн,ср-пт,вс", "пт")
возвращает во всех случаях True .

lopuxi, данная функция полностью поставленную Вами задачу не решает, но, я считаю, направит Вас в "правильном направлении"...
...
Рейтинг: 0 / 0
Закраска ячеек в Excel с помощью VBA
    #36291768
Фотография lopuxi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.Михаил.lopuxi, во такая функция на рассмотрение
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Function MyFunc(ByVal mDays As String, ByVal mDay As String) As Boolean
Dim xDay( 1  To  7 ) As String, i As Integer, i1 As Integer, res() As String, mReturn As Boolean
Dim day1 As Integer, day2 As Integer, day3 As Integer
mDays = Replace(mDays, " ", ""): mDay = Replace(mDay, " ", "") ' удаление пробелов
xDay( 1 ) = "пн": xDay( 2 ) = "вт":: xDay( 3 ) = "ср": xDay( 4 ) = "чт"
xDay( 5 ) = "пт": xDay( 6 ) = "сб": xDay( 7 ) = "вс"
mReturn = False
res = Split(mDays, ",")
For i =  0  To UBound(res)
    If res(i) Like "??-??" Then
        For i1 =  1  To  7 
            If Mid(res(i),  1 ,  2 ) = xDay(i1) Then day2 = i1
            If Mid(res(i),  4 ,  2 ) = xDay(i1) Then day3 = i1
            If mDay = xDay(i1) Then day1 = i1
        Next
        If day2 <= day1 And day1 <= day3 Then mReturn = True
    End If
    If res(i) Like "??" And (res(i) = mDay) Then mReturn = True
Next
MyFunc = mReturn
End Function
например
Код: plaintext
1.
2.
3.
4.
5.
MsgBox MyFunc("ср", "ср")
MsgBox MyFunc("ср, сб", "ср")
MsgBox MyFunc("пн-вс", "ср")
MsgBox MyFunc("пн-ср,пт", "ср")
MsgBox MyFunc("пн,ср-пт,вс", "пт")
возвращает во всех случаях True .

lopuxi, данная функция полностью поставленную Вами задачу не решает, но, я считаю, направит Вас в "правильном направлении"...

Спасибо :)
...
Рейтинг: 0 / 0
Закраска ячеек в Excel с помощью VBA
    #36292206
Фотография lopuxi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
If res(i) Like "??-??" Then
...
If res(i) Like "??" And (res(i) = mDay) Then mReturn = True
...
Я только не очень понял что означают эти вопросики в коде?
...
Рейтинг: 0 / 0
Закраска ячеек в Excel с помощью VBA
    #36292219
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
? - один любой символ
...
Рейтинг: 0 / 0
Закраска ячеек в Excel с помощью VBA
    #36292384
Фотография lopuxi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One? - один любой символ
ясно ))
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Закраска ячеек в Excel с помощью VBA
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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