Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 След.
Цикл при переборе пропускает часть элементов
 
Ігор Гончаренко,Спасибо!
Цикл при переборе пропускает часть элементов
 
БМВ,Спасибо! Дело в смещении столбцов после удаления, да?
Цикл при переборе пропускает часть элементов
 
Доброго всем дня!
Цикл по идее должен удалять колонки, с определенными заголовками. Но по факту всегда остается несколько, хотя они удовлетворяют условиям. Полностью все удаляется только при повторном запуске макроса. Конкретно в файле примера должны удаляться вообще все колонки, но этого не происходит
Код
For cl = 1 To .UsedRange.Columns.Count
      If .Cells(1, cl).Value Like "Скидка*" Then .Cells(1, cl).EntireColumn.Delete
      If .Cells(1, cl).Value Like "*999*" Then .Cells(1, cl).EntireColumn.Delete
Next
Копирование данных из книг с определенным названием
 
Ігор Гончаренко,Спасибо!!! Похоже я все усложнил. Действительно, все гораздо проще можно сделать!
Копирование данных из книг с определенным названием
 
Добрый день!
Пытаюсь перебрать файлы в папке и копировать данные только из тех, чье имя содержит "20", например.
Код
Dim abook As Workbook
    Set abook = ActiveWorkbook
    Dim fileway As String, Objct As String
    Dim xlfile As Excel.Workbook
    With Application.FileDialog(msoFileDialogFolderPicker)
        .ButtonName = "OK"
        .Title = "Выбери папку"
        If .Show = 0 Then
            Exit Sub
        End If
        fileway = .SelectedItems(1)
    End With
    Objct = Dir(PathName:=fileway + "\*.xlsx")
    Do Until Objct = ""
        Set xlfile = Workbooks(fileway + "\" + Objct)
        nm = xlfile.Name
        If nm Like "*20*.xlsx*" Then
            lrg = abook.Sheets("Svod").Cells(Rows.Count, 1).End(xlUp).Row
            Sheets("List1").Select
            [A1].Copy abook.Sheets("Svod").Cells(lrg + 1, 1)
        End If
        xlfile.Close
        Objct = Dir
    Loop
    Set xlfile = Nothing

Вот тут:
Код
Set xlfile = Workbooks(fileway + "\" + Objct)
возникает ошибка Subscript out of range
Можно конечно сделать так:
Код
Set xlfile = Workbooks.Open(fileway + "\" + Objct)
все работает, но макрос открывает по очереди все книги, а это долго.
Подскажите, пожалуйста какой метод использовать вместо Open
Автофильтр с критериями - указанием первых букв значений
 
Jack Famous,так не прокатит. Я пробовал, но таким методом можно только два критерия использовать
Автофильтр с критериями - указанием первых букв значений
 
RAN,Спасибо!
Автофильтр с критериями - указанием первых букв значений
 
JayBhagavan,вот он!
Автофильтр с критериями - указанием первых букв значений
 
Всем доброго дня!
При фильтрации с темя критериями вот так
Код
.[A:Q].AutoFilter Field:=4, Criteria1:=Array("A", "B", "C"), Operator:=xlFilterValues
или вот так:
Код
.[A:Q].AutoFilter Field:=1, Criteria1:="abc*"
все получается. Первый фильтр использует сразу три критерия, а второй отображает значения, начинающиеся с определенных букв. Но если попытаться таким же методом действовать в первом случае (в каждом критерии указать только начало значения ячейки), то фильтр не работает.
Код
.[A:Q].AutoFilter Field:=4, Criteria1:=Array("A*", "B*", "C*"), Operator:=xlFilterValues
Вернее работает, но скрывает все.
Потеря знаков при приобразовании текста в число
 
Казанский,Спасибо! Второй вариант подходит!
Потеря знаков при приобразовании текста в число
 
Nordheim, в процессе обработки макросом колонка копируется на другой лист и сразу же теряются эти три знака. Т.е. с ней нельзя ничего сделать. Смотреть можно, трогать нельзя.
Потеря знаков при приобразовании текста в число
 
Доброго всем дня!
При экспорте данных в Excel источник выдает одну из колонок в которой содержатся только числа (кроме заголовка) в текстовом формате.
Пример: 121000011507605455
При попытке преобразовать в число результат получается такой: 121000011507605000
Последние три знака превращаются в нули! Почему так происходит и как с этим бороться?
Ошибка при фильтрации по датам
 
Спасибо! Значит просто расширить диапазон нужно, фильтруемый.
Ошибка при фильтрации по датам
 
gling,точно не поэтому
.Range("A:X").AutoFilter - это добавляет фильтр, независимо от того был он там или нет
Например, если его убрать с листа Расхождения2, то он будет добавлен автоматически.
С другой стороны, если заранее включить фильтр на первом листе, то все работает.
Тогда возникает вопрос: почему на один лист фильтр добавляется, а на другой тем же самым кодом - не хочет???
Ошибка при фильтрации по датам
 
В качестве критериев фильтрации использую значения ячеек с другого листа:
Код
With Sheets("Расхождения")
    datapi = Sheets("Макрос").Range("B3") - 1
    datai = Sheets("Макрос").Range("F5")
    For u = 1 To .UsedRange.Columns.Count
        If .Cells(1, u).Value Like "Дата учета" Then
            .Range("A:X").AutoFilter Field:=u, Criteria1:= _
            "<=" & CDbl(CDate(datapi)), Operator:=xlAnd, Criteria2:=">=" & CDbl(CDate(datai))
        End If
    Next
    End With
При попытке фильтрации выдает ошибку. Обычно этот метод работает. В этом можно убедиться если в файле-примере поменять в коде "Расхождения" на "Расхождения 2". На листе "Расхождения 2" схожие данные. При этом ошибки там не возникает.
Ошибка при копировании видимых ячеек после фильтрации
 
Все способы работают, спасибо!!!
Ошибка при копировании видимых ячеек после фильтрации
 
Цитата
Nordheim написал:
Это что
Определяет количество видимых ячеек
Ошибка при копировании видимых ячеек после фильтрации
 

Здравствуйте! При попытке скопировать после фильтрации видимые строки выдается ошибка:

"Не найдено ни одной ячейки, удовлетворяющей указанным условиям"

Код
With List4
        lrv = Application.CountA(.Columns(1).SpecialCells(12))
        If lrv > 2 Then
            .Range(.Cells(2, 1), .Cells(lrv, 3)).SpecialCells(12).Copy List3.[A1]
        End If
End With
Код фильтрации по времени по-разному ведет себя на разных данных
 
Kuzmich, не прокатило. Даже если везде одинаковые форматы сделать
Код фильтрации по времени по-разному ведет себя на разных данных
 
sokol92, Спасибо, так работает! Str() определяет тип данных как время, я правильно понял?
Код фильтрации по времени по-разному ведет себя на разных данных
 
Здравствуйте! Возникла проблема с фильтрацией:
Код
With Лист2
    threecol = Лист1.[I6]
    .[A:S].AutoFilter Field:=3, Criteria1:="Товар оприходован"
    .[A:S].AutoFilter Field:=11, Criteria1:=">" & threecol
End With
Первый шаг работает, а на втором фильтр убирает все данные. Но если открыть его вручную, то в нем будет стоять необходимое значение
Срабатывает он только после нажатия ОК.
Примечательно то, что этот затык наблюдается не у всех пользователей. Версии Excel разные. Может в этом причина?
На всякий случай сделал файл с примером.
Изменено: IvanMantrov - 22 Июн 2018 16:01:50
Редактирование макроса для Excel в Visual Studio
 
))) ему-то какая разница где я макросы пишу. А вот мне бы VS пригодилась для изучения других языков
Да и речь тут больше об IT-Службе. Им на каждую программу обоснование нужно.
Изменено: IvanMantrov - 11 Июн 2018 20:35:40
Редактирование макроса для Excel в Visual Studio
 
Т.е. запускать его оттуда как в самом Excel не получится?
Редактирование макроса для Excel в Visual Studio
 
Здравствуйте!
Заранее прошу прощения, если вопрос идиотский.
Кто знает возможно ли для разработки/редактирования макросов в документах Excel использовать не встроенную среду, а MS Visual Studio?
Хотя бы чисто теоретически. Нужно обосновать начальству зачем мне нужно на рабочий ноут установить VS. Изучение C# с нуля в мои обязанности не входит, а вот макросы для всего департамента одобряют всегда. Вот я и подумал не попростить ли эту программу и не убить ли двух зайцев.
Удаление промежуточных итогов из сводной таблицы
 
Видимо иногда полезно долго ждать ответа )))
Пока ждал сам придумал. Работает:
Код
Dim pf As PivotField
With ActiveSheet.PivotTables("СводнаяТаблица2")
        For Each pf In .PivotFields
            pf.Subtotals(1) = False
        Next
End With
Изменено: IvanMantrov - 10 Июн 2018 19:04:37
Удаление промежуточных итогов из сводной таблицы
 
Доброго всем дня!
Если создавать сводную таблицу с записью кода макрорекодером, то удаление промежуточных итогов выглядит так:
Код
ActiveSheet.PivotTables("СводнаяТаблица2").PivotFields("Корзина").Subtotals = _
        Array(False, False, False, False, False, False, False, False, False, False, False, False)
ActiveSheet.PivotTables("СводнаяТаблица2").PivotFields("Дата корзины"). _
        Subtotals = Array(False, False, False, False, False, False, False, False, False, False, _
        False, False)
Здесь на форуме прочитал, что все можно упростить до такого варианта, чтобы избавиться от этого множества false:
Код
ActiveSheet.PivotTables("СводнаяТаблица2").PivotFields("Корзина").Subtotals(1) = False
ActiveSheet.PivotTables("СводнаяТаблица2").PivotFields("Дата корзины").Subtotals(1) = False
В связи с этим появился вопрос, а можно ли пойти дальше и разом отключить итоги для всех полей таблицы. В этом примере их всего два, но бывает значительно больше. Или все же нужно прописывать это для каждого в отдельности?
Квадратные скобки вместо "Range" в коде
 
Доброго всем дня!
Решил упростить код, и вообще освоить более простые методы его написания. Например:
Код
.[C1] = "Сумма"
вместо
Код
.Range("C1") = "Сумма"
В связи с этим возник вопрос как с помощью этого же принципа переделать вот это:
Код
.Range("E2:E" & lr) 'тут переменная обозначает нижний край выделения
и это:
Код
.Range("J2", .Range("K2").End(xlDown))
Можно ли, используя квадратные скобки, полностью избавиться от всех этих "Range"?
Преобразование значения в формулу (подстановка знака равенства)
 
Спасибо, все работает!
Преобразование значения в формулу (подстановка знака равенства)
 
А можно на примере? Просто не могу привязать это к диапазону. Например Range("A2", Range("A2").End(xlDown))
Преобразование значения в формулу (подстановка знака равенства)
 
Здравствуйте!
Подскажите пожалуйста: есть ячейки со значениями наподобие: "355+675" Но это не формула, так как знака равенства в начале нет.
Как макросом вставить в заданном диапазоне знак равенства в начале значения каждой ячейки. И будут ли они восприниматься как формулы?
Страницы: 1 2 3 4 5 6 След.
Наверх