Microsoft Excel, Нужна помощь!!! Спасибо |
Здравствуйте Гость [ Вход | Регистрация ] | Форум в сети 6696-й день
![]() |
Шановні користувачі! Запрошуємо вас до офіційного телеграм-канала 0day Community. Тут ви зможете поспілкуватися одне з одним та дізнатися про останні новини щодо роботи ресурса, поставити запитання до адміністрації, тощо. Перейти до телеграм-канала можна відсканувавши QR-код або натиснувши на посилання: @zeroday_ua |
Microsoft Excel, Нужна помощь!!! Спасибо |
k1nd3rr |
Пост
#1
|
Репутация: ![]() ![]() Дух Группа: Пользователи Сообщений: 23 С нами с: 4-July 08 ![]() |
Ребята нужно помощь в Excel( я не особо силен в этой сфере) , или с формулой или макросом, кто готов помощь напишите в личку, буду очень благодарен!
|
![]() ![]() |
Dr.Sydorenko |
Пост
#2
|
Репутация: ![]() ![]() Старожил ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 2 148 С нами с: 27-June 12 ![]() |
Хоть бы задание описал, а то такое...
|
k1nd3rr |
Пост
#3
|
Репутация: ![]() ![]() Дух Группа: Пользователи Сообщений: 23 С нами с: 4-July 08 ![]() |
|
k1nd3rr |
Пост
#4
|
Репутация: ![]() ![]() Дух Группа: Пользователи Сообщений: 23 С нами с: 4-July 08 ![]() |
Sub ggg()
Dim TheDate As Date ' Declare variables. Dim Date180 As Date Dim ValueDate Dim Sum As Integer Dim Msg Dim sheetWithKvit As Worksheet Set sheetWithKvit = Worksheets("Лист1") TheDate = Range("b9") Date180 = TheDate - 180 If Date180 >= Range("a2") And Date180 <= Range("b2") Then ValueDate = -DateDiff("d", Range("b2"), Date180) Range("D3").FormulaLocal = "=СУММ(C3:C9)" Msg = Range("D3") Sum = Msg + ValueDate Worksheets("Лист1").Range("D2").Value = Date180 Worksheets("Лист1").Range("D4").Value = Sum End If ' Msg = "Days from today: " & Date180 ' MsgBox Msg End Sub http://www.ex.ua/272316129447 - ссылка на файл где что нужно добавить? нечего не получается, помогите!!! Сообщение отредактировал k1nd3rr - Sep 12 2016, 13:34 |
Kurator |
Пост
#5
|
Репутация: ![]() ![]() Java Developer ![]() ![]() Группа: Пользователи Сообщений: 672 С нами с: 22-January 08 ![]() |
Вообще, формулой такое не решить, так как низзя цикл написать (насколько я знаю...).
А с VBA я не сильно дружу. Поэтому набросал другое решение, оно простое, но не слишком элегантное. В приложенном файле: А16 - стартовая дата; С1 - Стартовая дата - 180 дней. А1 - А14 - Даты поездок. В16 - сумма дат, которые попадают в диапазон. В1 - В14 - Индикатор попадает ли поездка в заданный диапазон. Скачать файл можно отсюда Если такое решение подходит, то его можно сделать более элегантным (например в ячейках В1 - В14 цвет шрифта сделать белым ![]() |
k1nd3rr |
Пост
#6
|
Репутация: ![]() ![]() Дух Группа: Пользователи Сообщений: 23 С нами с: 4-July 08 ![]() |
Вообще, формулой такое не решить, так как низзя цикл написать (насколько я знаю...). А с VBA я не сильно дружу. Поэтому набросал другое решение, оно простое, но не слишком элегантное. В приложенном файле: А16 - стартовая дата; С1 - Стартовая дата - 180 дней. А1 - А14 - Даты поездок. В16 - сумма дат, которые попадают в диапазон. В1 - В14 - Индикатор попадает ли поездка в заданный диапазон. Скачать файл можно отсюда Если такое решение подходит, то его можно сделать более элегантным (например в ячейках В1 - В14 цвет шрифта сделать белым ![]() у тебя тут слишком все банально) нужен цикл...нужны знания VB Сообщение отредактировал k1nd3rr - Sep 12 2016, 13:36 |
Kurator |
Пост
#7
|
Репутация: ![]() ![]() Java Developer ![]() ![]() Группа: Пользователи Сообщений: 672 С нами с: 22-January 08 ![]() |
|
k1nd3rr |
Пост
#8
|
Репутация: ![]() ![]() Дух Группа: Пользователи Сообщений: 23 С нами с: 4-July 08 ![]() |
|
mega K. |
Пост
#9
|
Репутация: ![]() ![]() Активист ![]() Группа: Пользователи Сообщений: 228 С нами с: 1-July 07 ![]() |
=SUMIFS(C2:C9,A2:A9,"<="&D2,B2:B9,">="&D2)
|
Carnifex |
Пост
#10
|
Репутация: ![]() ![]() Дух Группа: Пользователи Сообщений: 179 С нами с: 5-July 09 ![]() |
где что нужно добавить? нечего не получается, помогите!!! Что значит "не получается", блин? Ошибка какая? Начнем с того что у Вас закоментарен вывод Мессэдж бокса - он Вам нужен или как? Dim Msg не имеет типа а должен быть String. И вообще, включите Option Explicit чуть выше по коду. Это у Вас экзешник или расширение для Экселя? |
Carnifex |
Пост
#11
|
Репутация: ![]() ![]() Дух Группа: Пользователи Сообщений: 179 С нами с: 5-July 09 ![]() |
Пока просто ровный код:
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... « Сообщение отредактировал Carnifex - Sep 13 2016, 13:47 |
Carnifex |
Пост
#12
|
Репутация: ![]() ![]() Дух Группа: Пользователи Сообщений: 179 С нами с: 5-July 09 ![]() |
Так. У меня код прошел без ошибок. Кстати, в ВБЕ Экселевском есть отладка если точку останова поставить и запустить код на выполнение. Щас че-то оформимс...
Сообщение отредактировал Carnifex - Sep 13 2016, 13:52 |
Carnifex |
Пост
#13
|
Репутация: ![]() ![]() Дух Группа: Пользователи Сообщений: 179 С нами с: 5-July 09 ![]() |
Вот код:
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... « Первая колонка твоего документа была принята за начало поездки, вторая - за конец. Дату, вплоть до которой нужно посчитать количество поездок вбиваешь в ячейку E2. Если не нужно всплывающее окошко - дай знать или убери сам. Там захардкожено пару мест - мне леньки было писать фильтр значений. Если че - можно немного причесать это дело. Сообщение отредактировал Carnifex - Sep 13 2016, 14:31 |
k1nd3rr |
Пост
#14
|
Репутация: ![]() ![]() Дух Группа: Пользователи Сообщений: 23 С нами с: 4-July 08 ![]() |
Вот код: » Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... « Первая колонка твоего документа была принята за начало поездки, вторая - за конец. Дату, вплоть до которой нужно посчитать количество поездок вбиваешь в ячейку E2. Если не нужно всплывающее окошко - дай знать или убери сам. Там захардкожено пару мест - мне леньки было писать фильтр значений. Если че - можно немного причесать это дело. Sub ggg() Dim TheDate As Date Dim Date180 As Date Dim ValueDate Dim Sum As Integer Dim i As Integer, w As Integer, a As Integer Dim Msg Dim sheetWithKvit As Worksheet ILustRow = Cells(Rows.Count, "B").End(xlUp).Row TheDate = Cells(ILustRow, "B") Date180 = TheDate - 180 i = 1 w = ILustRow Do While w > 2 w = w - 1 If Date180 >= Cells(w, "A") And Date180 <= Cells(w, "B") Then ValueDate = -DateDiff("d", Cells(w, "B"), Date180) a = Application.Sum(Range(Cells(w + 1, "C"), Cells(ILustRow, "C"))) 'Msg = Range("D3") Sum = a + ValueDate Exit Do Else Do While w > 2 If Date180 < Cells(w, "A") Then a = Application.Sum(Range(Cells(w, "C"), Cells(ILustRow, "C"))) Sum = a End If Exit Do Loop End If Loop Cells(ILustRow, "D").Value = Date180 Cells(ILustRow, "E").Value = Sum End Sub вот полностью рабочий код) уже разобрался, СПАСИБО! |
Carnifex |
Пост
#15
|
Репутация: ![]() ![]() Дух Группа: Пользователи Сообщений: 179 С нами с: 5-July 09 ![]() |
Ok) Пиши если че)
|
![]() ![]() |
![]() |
Упрощённая версия | Сейчас: 14th July 2024 - 16:24 |
Сайт не розміщує електронні версії творів, а займається лише колекціонуванням та каталогізацією посилань, що публікуються нашими користувачами. Якщо Ви є правовласником якоїсь частини опублікованого матеріалу та не бажаєте, щоб посилання на нього знаходилось в нашому каталозі, зв’яжіться з нами і ми видалимо його. Файли для обміну надані користувачами сайту і адміністрація не несе відповідальності за їх вміст. |