Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Закраска ячеек в Excel с помощью VBA / 6 сообщений из 6, страница 1 из 1
03.11.2009, 16:11
    #36288800
lopuxi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закраска ячеек в Excel с помощью VBA
Всем здрасте!
У меня вот возникла вот такая задача, нужно закрашивать ячейки, не не все в подряд... и тут возникла проблема.
Во вложенном файле выложил фото сетки.
Может кто знает как бы сделать так что бы программа различала текст? то есть.
пн, вт, ср, чт, пт. - дни недели
пн-пт - дни когда выходит данная программа.
а значит ячейки пн, вт, ср, чт, пт - должны быть закрашены...
...
Рейтинг: 0 / 0
05.11.2009, 11:01
    #36291488
.Михаил.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закраска ячеек в Excel с помощью VBA
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
05.11.2009, 12:16
    #36291768
lopuxi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закраска ячеек в Excel с помощью VBA
.Михаил.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
05.11.2009, 14:08
    #36292206
lopuxi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закраска ячеек в Excel с помощью VBA
...
If res(i) Like "??-??" Then
...
If res(i) Like "??" And (res(i) = mDay) Then mReturn = True
...
Я только не очень понял что означают эти вопросики в коде?
...
Рейтинг: 0 / 0
05.11.2009, 14:11
    #36292219
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закраска ячеек в Excel с помощью VBA
? - один любой символ
...
Рейтинг: 0 / 0
05.11.2009, 14:56
    #36292384
lopuxi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закраска ячеек в Excel с помощью VBA
Konst_One? - один любой символ
ясно ))
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Закраска ячеек в Excel с помощью VBA / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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