Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 След.
Изменение в коллекции объектов внутри цикла For Each, Можно ли перескочить или зациклить некоторые объекты из коллекции при выполнении цикла For Each?
 
Jack Famous, БМВ, Спасибо за комментарии.

Цитата
написал:
Что нужно - непонятно… Объясните практический смысл
Да просто хотелось понять "механику" For Each, т.е. может ли он сделать "шаг назад" или нет, можно ли повлиять на "с" по ходу работы цикла или нет.  
Да и действительно от него это и не требуется. В рабочем примере успешно применил метку, а другие практические примеры не придумал.

Цитата
написал:
If Range(c.Address).Row = 10 Then c = Range(c.Address).Offset(-1, 0) вроде это If c.Row = 10 Then c = с.Offset(-1, 0)
Дурное влияние примеров из интернета и привычка расписывать ) Спасибо.

Для себя отметил, что если возник такой вопрос - значит что то намудрил с условиями внутри цикла).
Изменено: Shama - 17.01.2022 12:28:50
Не перестаю удивляться возможностям excel и VBA.
Изменение в коллекции объектов внутри цикла For Each, Можно ли перескочить или зациклить некоторые объекты из коллекции при выполнении цикла For Each?
 
Доброго утра. Циклы For i to... или Do... можно легко зациклить или перенестись к концу цикла изменив переменную i или условие внутри него, это понятно.
А можно ли аналогично поступить с циклом по объектам For Each?
Для примера, хотелось бы зациклить ниже приведенный пример на последней 10 строке. Пример конечно же не работает(он для визуализации))). Можно ли это как то сделать или это просто не предусмотрено и нарушает саму суть этого цикла?

P.s. GoTo пришел на ум. А как нибудь еще? т.е. именно изменить переменную с ?

Код
Sub test()
Dim c As Range
For Each c In Range("A1:A10")
      If Range(c.Address).Row = 10 Then c = Range(c.Address).Offset(-1, 0)
Next c
End Sub
Изменено: Shama - 17.01.2022 09:06:02
Не перестаю удивляться возможностям excel и VBA.
Получаю разное значение при одинаковых условиях в функциях Int и Fix
 
Цитата
БМВ написал:
кстати прикольно чтоFix(cdbl(1.1234 * 10000)) = 11234  а   Fix(1.1234 * 10000) = 11233
А вот интересно, что примеры, аналогичные, ниже дают одинаковый результат. Получается преобразование cdbl() не работает? (Конечно, уже определились что лучше будет через VBA.)
Fix(66.1402 * 10000)
Fix(CDbl(66.1402 * 10000))
Изменено: Shama - 09.09.2021 11:55:39
Не перестаю удивляться возможностям excel и VBA.
Получаю разное значение при одинаковых условиях в функциях Int и Fix
 
Дмитрий(The_Prist) Щербаков, Ігор Гончаренко, Благодарю, доходчиво объяснили.
Цитата
Ігор Гончаренко написал:
сколько раз объяснялось это особенности хранения в памяти компьютера десятичных чисел
Честно не знал. Но не уверен, что не наступлю на те же "грабли" в будущем.

Цитата
Ігор Гончаренко написал:
Shama  написал:Получаю разное значение при одинаковых условиях в функциях Int и Fix
Соглашусь, звучит двояко. Однако подробно описал проблему в теме.
Не перестаю удивляться возможностям excel и VBA.
Получаю разное значение при одинаковых условиях в функциях Int и Fix
 
Дмитрий(The_Prist) Щербаков, Логика понятна, хоть и не привычна. Привык что функция работает с уже рассчитанным значением.
Но почему тогда эти примеры не портятся до расчета функции?
Fix(0.1 * 2 + 1.9)
Fix(0.25 * 4)
Fix(0.25 + 0.25 + 0.25 + 0.25)
Не перестаю удивляться возможностям excel и VBA.
Получаю разное значение при одинаковых условиях в функциях Int и Fix
 
Дмитрий(The_Prist) Щербаков, Спасибо, работает. Учту на будущее такой метод, вероятно еще пригодится.
RAN, Действительно, даже не думал, что изменения типа на Variant повлияет на результат.
БМВ, предполагал, что Cdbl работает аналогично второму варианту, но здорово уменьшает код, спасибо.
Спасибо за ответы, но кажется вопросов стало только больше)
Изменено: Shama - 09.09.2021 09:35:57
Не перестаю удивляться возможностям excel и VBA.
Получаю разное значение при одинаковых условиях в функциях Int и Fix
 
Доброго дня. Подскажите пожалуйста, почему получается разные результаты, если в первом примере число функции Fix задано расчетом, а во втором рассчитанной переменной? Аналогично ведет себя int.
Fix((1.1234 * 10000)) = 11233, почему?
Грубо говоря это проверка числа на округление до 4 знака после запятой.  
Код
Sub test1()
Dim x As Double
x = 1.1234
If (x * 10000) - Fix((x * 10000)) <> 0 Then MsgBox "Ошибка"
End Sub

Sub test2()
Dim x As Double, y As Double
x = 1.1234
y = x * 10000
If y - Fix(y) <> 0 Then MsgBox "Ошибка"
End Sub

Изменено: Shama - 09.09.2021 08:48:17
Не перестаю удивляться возможностям excel и VBA.
Как закрепить гиперссылку (чтобы при сдвиге ячеек информация не менялась)
 
(Если все такие тема осталось прежней) Столкнулся с описанной проблемой, но решил ее через диспетчер имен.
Нужно было создавать гиперссылки на места в этом же документе. Его название и структура постоянно меняется и гиперссылки(прямые на ячейки/строки/толбцы) постоянно съезжали. В диспетчере имен можно создать имя для нужного диапазона, который будет автоматически корректироваться при изменении структуры таблиц, а гиперссылка будет ссылаться на этот диапазон через присвоенное имя.

Например при добавлении столбца А на листе данные - у второй гиперссылки изменится диапазон, а у первой нет.  
Не перестаю удивляться возможностям excel и VBA.
копирование всех pdf файлов из подпапок в папку
 
Собрал себе вот такой файлик, там 2 макроса - первый получает список файлов, папок и под папок в выбранной папке, второй копирует файлы в указанную папку.
Настройки между задаются в ручном режиме в екселе после получения списка файлов. Например каждый файл можно дополнительно разместить в свою подпапку или переименовать. Второй макрос копирует все по списку. поэтому предварительно лишние строки списка нужно удалить.

Попробуйте, может понравится. В вашем случае нужно выбрать ту самую "одну папку", получить список файлов, оставить только ПДФ, и указать куда их скопировать.  
Изменено: Shama - 03.06.2021 06:32:13
Не перестаю удивляться возможностям excel и VBA.
Обновить расчет данных при изменении значения ячейки
 
Николай Ващенко, рад был помочь. Просто поэксперементировал с разными вариантами и один "выстрелил".
Цитата
Николай Ващенко написал:
Просто заводится стандартный элемент, потом в ручную вводятся параметры... (они в примере не прописаны, облегчил его).  Хочется что бы считало и оформление сразу было
Это понятно. Мой вопрос, и то что мне до сих пор не понятно - почему же выстрелил?) почему появлялась ошибка "ИМЯ!" в формуле ДВССЫЛ, когда ее прописывает макрос.

ЗЫ. Ответ на свой(глупый))) вопрос нашел. Что бы ексель понял и подсчитал формулу из макроса нужно:
1. прописывать ее на английском языке,например
Код
Range("A3") = "=INDIRECT(""A1"")"

2. или прописывать ее на другом языке, но при этом указать свойство .FormulaLocal, "на языке пользователя", например
Код
Range("A3").FormulaLocal = "=ДВССЫЛ(""A1"")"
Третьего, я так понимаю, не дано. В примере ниже ексель не поймет что такое "ДВССЫЛ" в своих базовых формулах(на английском языке). Поэтому отображаться она будет правильно, но за формулу распознана не будет:
Код
Range("A3") = "=ДВССЫЛ(""A1"")"
Изменено: Shama - 28.05.2021 11:17:00
Не перестаю удивляться возможностям excel и VBA.
Обновить расчет данных при изменении значения ячейки
 
Доброго утра. Замените "ДВССЫЛ" на "INDIRECT" и заработает.
Но можно мне тоже объяснить, в чем конкретно кроется разница между тем, когда формула вводится в ручную и когда ее вводит макрос?
Конкретно в данном примере, я так понял, формулы типа умножения и сложения обновляются сразу же без проблем, а ДВССЫЛ отпределяется как текст что ли?! и возвращает ошибку ИМЯ!
Изменено: Shama - 28.05.2021 07:06:11
Не перестаю удивляться возможностям excel и VBA.
Расчёт показателя при двух изменяемых переменных
 
На вопрос "Расчёт показателя при двух изменяемых переменных" ответы даны.
Цитата
Никита Салиев написал:  при разных входных данных по разным офисам формула считала сколько в текущий момент не хвать положительных оценок (в количестве), что показатель был на уровне 80%
Если есть проблемы с реализацией в екселе на исходных данных, то поделитесь ими. Измените конфиденциальные данные на простые другие(но рекомендую оставить общее сходство - кол.во столбцов, округление и формат чисел и т.д.). Покажите как есть и как должно быть, приложив файл пример. С него и надо было начать.  
Не перестаю удивляться возможностям excel и VBA.
Расчёт показателя при двух изменяемых переменных
 
Цитата
Теперь вопрос, какая формула позволит высчитать дополнительное количество «положительных» оценок, чтобы итоговый результат стал 80%?  
получилось вроде так Х = 4*Z + 9*Y
Где Х это кол-во положительных оценок, которое надо найти.
Z - это кол-во нейтральных оценок, которое должно быть известно
Y -  это кол-во отрицательных оценок, которое должно быть известно

ЗЫ. Формулы выше подсчитает "всего хороших оценок". "Доп.кол-во" будет результатом разницы Х и тек.кол-вом "хороших" оценок, при не изменном кол-ве "плохих" и "нейтральных", разумеется.  

Но не совсем понятно, как математика нач.школьного уровня относится к этому форуму)
Не перестаю удивляться возможностям excel и VBA.
Показать/скрыть объект, при отображении/скрытии строк /столбцов
 
Цитата
Апострофф написал:
который Вы почему то упустили?
Ну по незнанию разумеется)
Цитата
Апострофф написал:
Во вторых - события скрытия-показа столбцов Excel не рассматривает вообще.
Это конечно жаль. Спасибо за ответ.  
Не перестаю удивляться возможностям excel и VBA.
Показать/скрыть объект, при отображении/скрытии строк /столбцов
 
Доброго дня. Думаю ответ простой, но до меня что то дойти никак не может.
Хочу, что бы объект "стрелка вверх" был виден, если будут скрыты столбцы E:F и соответственно наоборот.
Подскажите пожалуйста, как правильно это записать?
Код
Private Sub Worksheet_Change()
 If Columns("E:F").EntireColumn.Hidden = True Then
      Shapes("Стрелка вверх 1").Visible = True
 Else
      Shapes("Стрелка вверх 1").Visible = False
 End If
End Sub
Не перестаю удивляться возможностям excel и VBA.
Перевод ячеек (текстов) с китайского на русский и английский
 
Цитата
Тимофеев написал: убрать бы кавычки
Точно, поспешил)

Цитата
Тимофеев написал: zh-TW - на какие еще можно поменять аргументы?
По ссылке выше указано как узнать "код языка" в  translate.google.

У меня перестало работать. Браузер жалуется на "подозрительные запросы из скрипта"(  
Не перестаю удивляться возможностям excel и VBA.
Перевод ячеек (текстов) с китайского на русский и английский
 
Зы. Это Вам спасибо, +1 интересный пример в моей копилке.
Изучал это. и далее по ссылкам https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=8&TID=24313
Изменено: Shama - 30.04.2021 10:01:22
Не перестаю удивляться возможностям excel и VBA.
УФ даты и времени в зависимости от NOW()
 
Предлагаю так
Не перестаю удивляться возможностям excel и VBA.
Формировать отчет с помощью консолидации
 
Мне в свое время, на подобный вопрос, посоветовали использовать PQ.
Не перестаю удивляться возможностям excel и VBA.
Посчитать количество ячеек при разных условиях
 
не одной формулой конечно, но предложу вариант.

доп.- ну и по логике таблицы в долгой(требовательной к памяти) СЧЁТЕСЛИМН нет необходимости. Если массив справа, нужной глубины, заполнен - значит это в + к расчету. Возможно так только в примере, а в оригинале нужно иначе.  
Изменено: Shama - 09.03.2021 22:43:10
Не перестаю удивляться возможностям excel и VBA.
Выбрать ячейку и получить индекс цвета из другой открытой книги с помощью VBA
 
sagertso, Да не за что.
Если нужна ячейка для выбора пользователю, куда занести результат - пример во вложении.
Цитата
sagertso написал:
Повторюсь, имя книги, листов и адреса ячеек меняются. Т.е. пользователь самостоятельно должен указать книгу, лист и ячейку, из которой нужно получить индекс цвета.
Это все определяет Application.InputBox.
Не перестаю удивляться возможностям excel и VBA.
Выбрать ячейку и получить индекс цвета из другой открытой книги с помощью VBA
 
Пожалуйста, пусть выбирает.

Доп. - про значение в А1 ток щас увидел. Извиняюсь, не выспался  :sceptic: .
Изменено: Shama - 09.03.2021 11:59:49
Не перестаю удивляться возможностям excel и VBA.
Выбрать ячейку и получить индекс цвета из другой открытой книги с помощью VBA
 
sagertso, ориентировался на тему - Выбрать ячейку и получить индекс цвета из другой открытой книги с помощью VBA.
Сейчас поправлюсь.

p.s. по мне так, чем меньше пользователь зайдействован в работе, тем лучше)
Не перестаю удивляться возможностям excel и VBA.
Выбрать ячейку и получить индекс цвета из другой открытой книги с помощью VBA
 
Код
Sub Кнопка1_Щелчок()
Range(Selection.Address).Value = Workbooks(2).Worksheets(1).Range(Selection.Address).Interior.Color
End Sub

*Но много всяких !если: вторая открытая книга должа быть именно та, и именно на первом листе должны быть цвета. И работает только с одной выделенной ячейкой.

Изменено: Shama - 09.03.2021 11:35:22
Не перестаю удивляться возможностям excel и VBA.
Как удалить цифры в выделенном диапазоне?
 
Я в своем примере поправил код. Взял из этой темы, по процессу очень схожи.  
Не перестаю удивляться возможностям excel и VBA.
что делать если файл excel долго обрабатывает данные ????
 
Опишите - какого рода обработка, макросы/ формулы? какие формулы используете? Есть ли ссылки на внешние источники? Сводные таблицы?
Мини пример файла помог бы решить Вашу проблему.

Обработка разная бывает, можно и за секунду обработать 1кк строк(например залить каким нибудь цветом)  
Изменено: Shama - 04.03.2021 13:34:51
Не перестаю удивляться возможностям excel и VBA.
Замена текстовых значений
 
bigorq, ответил под вопрос и пример. Уточнялось только наличие множества вариантов по ширине.
Цитата
Николай Ильин написал:
могут быть и другие значения ширины,
Не перестаю удивляться возможностям excel и VBA.
Удаление дубликатов по условию с объединением значений
 
Тема <> задача
Вроде бы не сложно - через циклы, с поиском значений/совпадений, суммирование по строкам и результат на соседнем листе.
Но это не разбор какой то проблемы или правила. Это больше похоже на индивидуальное ТЗ, для раздела "Работа"  
Не перестаю удивляться возможностям excel и VBA.
Замена текстовых значений
 
Насколько понял - достаточно если+поиск.
Не перестаю удивляться возможностям excel и VBA.
Подсчитать количество повторяющихся значений внутри диапазона дат
 
Пример ниже - без отдельного дня, только диапазон дат.

Цитата
Андрей Кутенких написал:
внутри интервала определенной даты
не понятно, имеете в виду временной интервал внутри конкретного дня? в примере нет времени, только даты.  
Не перестаю удивляться возможностям excel и VBA.
Страницы: 1 2 3 4 5 След.
Наверх