А можно еще выделить нужный файл в открытой папке?
открытие папки
VBA. Можно ли сгруппировать элементы массива?
VBA. Можно ли сгруппировать элементы массива?
VBA. Можно ли сгруппировать элементы массива?
VBA. Можно ли сгруппировать элементы массива?
VBA. Можно ли сгруппировать элементы массива?
VBA. Можно ли сгруппировать элементы массива?
VBA. Прошу пояснить по методу GetOpenFilename
VBA. Прошу пояснить по методу GetOpenFilename
VBA. Прошу пояснить по методу GetOpenFilename
VBA. Прошу пояснить по методу GetOpenFilename
VBA. Прошу пояснить по методу GetOpenFilename
VBA. Прошу пояснить по методу GetOpenFilename
VBA. Прошу пояснить по методу GetOpenFilename
VBA. Прошу пояснить по методу GetOpenFilename
Как сделать проверку открытия рабочих книг и если они закрыты вывести сообщение?
24.02.2010 16:09:23
Вдобавок к предыдущему еще масса способов рассмотрены здесь:
|
|
|
VBA. Прошу пояснить по методу GetOpenFilename
Функция-аналог "РАБДЕНЬ" (Office 2007) доработанная
Функция-аналог "РАБДЕНЬ" (Office 2007) доработанная
Функция-аналог "РАБДЕНЬ" (Office 2007) доработанная
Функция-аналог "РАБДЕНЬ" (Office 2007) доработанная
Функция-аналог "РАБДЕНЬ" (Office 2007) доработанная
18.02.2010 18:21:27
Выкладываю на ваш строгий суд функцию, представляющую собой аналог встроенной в Office 2007 функции "РАБДЕНЬ".
Возможно это уже было, но я не нашел, потому пришлось наваять. Преимущества: 1. Учитывает рабочие субботы и воскресения 2. Работает под 2003 Сам код: Option Base 1 Public Function РАБДНИ(ByVal ДатаНачальная As Date, КоличДней As Integer, _ Optional ДиапазонПраздников As Variant, Optional ДиапазонИсключений As Variant) As Date ' функция разработана на базе ' Возвращает число, которое представляет дату, отстоящую на заданное количество рабочих дней вперед ' или назад от начальной даты. Отличием от функции MS Office 2007 "РАБДЕНЬ" является учитывание суббот и _ ' воскресений, являющихся рабочими (например - 27.02.2010 г.). ' ДатаНачальная - начальная дата. ' КоличДней - количество дней до или после начальной даты, не являющихся выходными или праздниками. ' Положительное значение аргумента «КоличДней» обозначает будущую дату; отрицательное — прошедшую дату. ' ДиапазонПраздников - необязательный список из одной или нескольких дат, например государственных праздников, ' которые требуется исключить из рабочего календаря (диапазон ячеек, именованный диапазон и т.п. ' перечисление дат не прокатит). ' ДиапазонИсключений - необязательный список из одной или нескольких дат, rоторые требуется исключить из выходных дней. ' Требования - как у "ДиапазонПраздников" Dim Selebrate, Iskluchenia As Variant Dim Weekend, Holiday As Boolean Dim x, i As Integer If IsMissing(ДиапазонИсключений) = False Then If ДиапазонИсключений.Count = 1 Then ReDim Iskluchenia(1) Iskluchenia(1) = ДиапазонИсключений.Value Else Iskluchenia = WorksheetFunction.Transpose(ДиапазонИсключений) End If End If If IsMissing(ДиапазонПраздников) = False Then If ДиапазонПраздников.Count = 1 Then ReDim Selebrate(1) Selebrate(1) = ДиапазонПраздников Else Selebrate = WorksheetFunction.Transpose(ДиапазонПраздников) End If End If Do Until КоличДней = 0 x = x + IIf(КоличДней > 0, 1, -1) Weekend = False Holiday = False 'определяем субботу и воскресение If Weekday(ДатаНачальная + x, vbMonday) = 6 _ Or Weekday(ДатаНачальная + x, vbMonday) = 7 Then Weekend = True End If 'определяем, не является ли уикенд рабочим If IsEmpty(Iskluchenia) = False Then For i = LBound(Iskluchenia) To UBound(Iskluchenia) If ДатаНачальная + x = Iskluchenia(i) Then Weekend = False Exit For End If Next i End If 'определяем праздники If IsEmpty(Selebrate) = False Then For i = LBound(Selebrate) To UBound(Selebrate) If ДатаНачальная + x = Selebrate(i) Then Holiday = True Exit For End If Next i End If If Weekend = False And Holiday = False Then КоличДней = КоличДней - IIf(КоличДней > 0, 1, -1) End If Loop РАБДНИ = ДатаНачальная + x End Function Может, кому-нибудь пригодится. |
|
|
Оффтоп... у кого больше :)
VBA. Можно ли не открывая книгу перебрать в цикле названия листов?
VBA. Можно ли не открывая книгу перебрать в цикле названия листов?
VBA. Можно ли не открывая книгу перебрать в цикле названия листов?
Как правильно применить формулу массива СУММ() в VBA
Как правильно применить формулу массива СУММ() в VBA
Как правильно применить формулу массива СУММ() в VBA
Как правильно применить формулу массива СУММ() в VBA