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

Страницы: 1
Как разбить слово по признаку, 123в4 -> 123 и в4
 
нашел такое решение:
{=ПОИСКПОЗ(ИСТИНА;ЕОШ(ПСТР(A1;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1)-1);0)}
Как разбить слово по признаку, 123в4 -> 123 и в4
 
Доброе.
Часто приходиться разбивать числовые строки по первому вхождению не числа, например
123в4 -> 123 и в4
123/4 -> 123 и /4
0123в -> 0123 и в
11 -> 11
нет ли какого способа это сделать формулой? В принципе разбивать нет надобности, достаточно получить позицию первого нечислового символа.
Отбор в таблице по списку, отобрать строки таблицы
 
Доброе. Скорее всего вопрос задавался, но вот разные варианты поиска не дали нужного результата.
Есть таблица типа код товара, наименование товара
на другом листе заполняем колонку выбранными кодами товара, например 1, 3, 29, 40 и вторую колонку с кодами 2, 12, 32
Можно ли из первой таблице сразу отфильтровать строки по совпадению выбранных кодов товаров?
Т.е. в первом случае должны из общей таблицы остаться только строки с кодами 1, 3, 29, 40 ну а во втором 2, 12, 32
Можно ли это сделать не программным спсобом?
Подсчет повторов наподобие СЧЁТЕСЛИ(), подсчет кол-ва встреч содержимого ячейки в столбце
 
спасибо большое. Видел подобные варианты, попробовал сделать =СЧЁТЕСЛИ(A:A;A1&*) - получил ошибку и решил, что не мой путь )))))
Спасибо еще раз
Изменено: Rizone - 01.03.2022 16:15:04
Подсчет повторов наподобие СЧЁТЕСЛИ(), подсчет кол-ва встреч содержимого ячейки в столбце
 
Доброе!
Не знаю как объяснить...вобщем имеем колонку
Коля
Коля, Николай
Коля, Николай, Москва
Москва

Хочу получить
Коля -3 (слово "Коля", содержимое данной ячейки, в 1й колонке встретилось 3 раза)
Коля, Николай -2 (слово "Коля, Николай", содержимое данной ячейки, в 1й колонке встретилось 2 раза)
Коля, Николай, Москва -1
Москва - 2 (слово "Москва ", содержимое данной ячейки, в 1й колонке встретилось 2 раза)

можно ли такое получить?
Перебор папок Outlook, Перебор папок Outlook и сохранение вложений
 
Спасибо большое за помощь!
Пока оставил такой вариант
Код
Public Sub SaveAttachments()
    Dim objOutlApp As Object, oNSpace As Object, oIncoming As Object
    Dim oIncMails As Object, oMail As Object, oAtch As Object, myFolder As Object
    Dim saveFolder As String
    
    Set objOutlApp = GetObject(, "outlook.Application")
    If objOutlApp Is Nothing Then
        Set objOutlApp = CreateObject("outlook.Application")
        IsNotAppRun = True
    End If
    
    Set oNSpace = objOutlApp.GetNamespace("MAPI")
    Set myFolder = oNSpace.GetDefaultFolder(olFolderContacts)
    Set oIncoming = oNSpace.Folders(1).Folders("РПРЦ")
    
    saveFolder = "C:\Payments\"
    If Dir(saveFolder, vbDirectory) = "" Then
        MkDir saveFolderDorogi
    End If

    On Error GoTo ErrHandler
     
    Set oIncMails = oIncoming.Items
    For Each oMail In oIncMails
        If oMail.UnRead Then
            For Each oAtch In oMail.Attachments
                oAtch.SaveAsFile saveFolder & oAtch.DisplayName
            Next
        End If
    Next
    
    Set oIncMails = Nothing
    Set oIncoming = Nothing
    Set oNSpace = Nothing
    Set objOutlApp = Nothing
    
    Exit Sub
     
ErrHandler:
    MsgBox (Err.Description)
    'Debug.Print (Err.Description)
    Debug.Print (Err.Number)
End Sub
Смущает только проверки на UnRead т.к. после выполнения придется тыкать в каждое письмо...
Ну, или, может просто уберу это условие и пусть каждый раз все выгружает...
Перебор папок Outlook, Перебор папок Outlook и сохранение вложений
 
Да показывать то особо нечего, пробовал и так и сяк...
пробовал разными способами, найденными в инете. Сейчас в коде такие исправления:
Код
Public Sub SaveAttachments()
    Dim objOutlApp As Object, oNSpace As Object, oIncoming As Object
    Dim oIncMails As Object, oMail As Object, oAtch As Object, myFolder As Object
    Dim saveFolder As String
    Dim xx As Long
    
    'отключаем обновление экрана, чтобы наши действия не мелькали
    'Application.ScreenUpdating = False
    
    'получаем доступ к Оутлук
    Set objOutlApp = GetObject(, "outlook.Application")
    If objOutlApp Is Nothing Then
        Set objOutlApp = CreateObject("outlook.Application")
        IsNotAppRun = True
    End If
    
    'Получаем доступ к папкам почты
    Set oNSpace = objOutlApp.GetNamespace("MAPI")
    'Подключаемся к папке Входящие
    Set myFolder = oNSpace.GetDefaultFolder(olFolderContacts)
    Set oIncoming = myFolder.Folders("РПРЦ")
    'Удаленные ==> oNSpace.GetDefaultFolder(3)
    'Исходящие ==> oNSpace.GetDefaultFolder(4)
    'Отправленные ==> oNSpace.GetDefaultFolder(5)
    'Входящие ==> oNSpace.GetDefaultFolder(6)
    
    saveFolder = "C:\Payments\"
    'Проверка наличия папки платежей. Если нет, то создаем
    If Dir(saveFolder, vbDirectory) = "" Then
        MkDir saveFolderDorogi
    End If

    On Error GoTo ErrHandler
     
    'получаем коллекцию писем Входящие (включая подпапки)
    Set oIncMails = oIncoming.Items
    'For xx = 1 To oIncMails.Folders.Count
        'If oIncMails.Folders(xx).Name = "РПРЦ" Then
            'здесь уже перебираем все письма этой папки
            For Each oMail In oIncMails.Folders(xx).Items
                If oMail.UnRead Then
                    'вызываем приведенную Вами функцию
                    oMail.SaveAsFile saveFolder & oMail.DisplayName
                End If
            Next
        'End If
    'Next
        
    'очищаем переменные
    Set oIncMails = Nothing
    Set oIncoming = Nothing
    Set oNSpace = Nothing
    Set objOutlApp = Nothing
    'возвращаем ранее отключенное обновление экрана
    'Application.ScreenUpdating = True
    
    'For Each mi In myFolder.Items.Restrict("[Unread]=TRUE")
    '   If mi.Class = olMail Then
    '      If mi.Attachments.Count = 0 Then
    '         For miNum = 1 To mi.Attachments.Count
    '            mi.SaveAsFile saveFolder & mi.DisplayName
    '         Next miNum
    '      End If
    '   End If
    'Next mi
    Exit Sub
     
ErrHandler:
    MsgBox (Err.Description)
    'Debug.Print (Err.Description)
    Debug.Print (Err.Number)
End Sub

Да, Входящие, например, находит
Т.е. можно было бы эти папки создать под Входящими и тогда доступ к ним можно получить, но этот вариант на крайняк )
Изменено: Rizone - 23.08.2021 13:02:58
Перебор папок Outlook, Перебор папок Outlook и сохранение вложений
 
Доброе!
На форуме уже были похожие темы, но у меня все уперлось в то, что не могу перебрать папки Аутлука 2019. Ни в Application.Session.Folders ни NameSpace.Folders, вообщем эти две папки РПРЦ и Чекмастер я нигде найти не могу.
Просю подсобить с этой проблемой
Изменено: Rizone - 23.08.2021 12:31:52
преобразовать связь "один-к многим" в "один-к одному", получить из таблицы типа "один к многим" таблицу "один к одному"
 
Спасибо огромное, буду смотреть все решения

ЗЫ
Жаль, что у мну не О365, в одну формулу чудно получается
Изменено: Rizone - 20.10.2020 14:53:41
преобразовать связь "один-к многим" в "один-к одному", получить из таблицы типа "один к многим" таблицу "один к одному"
 
вот образец
преобразовать связь "один-к многим" в "один-к одному", получить из таблицы типа "один к многим" таблицу "один к одному"
 
Доброе!
подскажите можно ли решить в рамках экзел такую задачу:
имеем таблицу типа "один к многим"
Исходная таблица
111
112
113
214
215
316
из нее нужно получить
Результат
111,12,13
214, 15
316
Внесение начальных и конечных показаний электросчетчиков
 
Цитата
solnc.ev написал:
Хотелось бы , чтобы эти данные  переносились на новы лист
До сих пор нет биллинга? Даже самого простого?
Можно ли ускорить работу Excel, заменив HDD на SSD?
 
Цитата
Jack Famous написал:
Именно это Вы и сказали ))
ну, пардоньте )))
Мне как то проще, при необходимости, как пример, большие объемы лефт джойнить в акцесе чем ждать минутами выполнение впр в экзеле

ЗЫ
В личку глянул еще первый раз. перечитывал правила и пытался понять в чем мой косяк
Изменено: RizONE - 14.05.2020 11:30:17
Можно ли ускорить работу Excel, заменив HDD на SSD?
 
я лишь хотел сказать, что просто использование побольше памяти, побольше ядер, побольше частоты, вообщем побольше всего не приведут к сильно заметным ускорениям в работе экзеля.
Согласен, я не оптимизировал в той, старой, работе ничего. Мне давали файл и я с ним работал. С начала на десктопе потом на сервере. переход с одного на другое особого прироста не дал. Я об этом.
Можно ли ускорить работу Excel, заменив HDD на SSD?
 
Большие объемы данных вертеть в эксел дело пустое.
Порой проще данные перегнать куда нить в акцес и там с ними играться, а то и в sql
Ранее приходилось обрабатывать (фильтры, впр и т.д., но без vba) файлики с примерно 160 000 х 40 ячеек. Для этого каждый раз выделялся выделенный сервер с, дай бог памяти, 30ю ядрами и оперативкой за сотню гб. Экзелю это все пофиг, работа заканчивалась далеко за полночь.
Скриптом открыть файл, изменить и записать
 
Цитата
Hugo написал:
А в чём было дело до конца не поняли...
код
Код
ThisWorkbook.Sheets("Лист1").Range("A9:B15").Copy oSheet.Range("B2")
берет данные из Лист1 файла PERSONAL.XLSB т.к. функция объявлена в нем. Лист1 в нем пуст, вот он пусто и копирует в файл Приложение_5
Скриптом открыть файл, изменить и записать
 
Понял в чем было дело!
Макрос запускается из PERSONAL.XLSB  и соответственно для него Лист1 естественно пустой!
Перенес макрос в Модуль открываемого файла и все заработало.
Соответственно вопрос: как теперь заставить все это работать из личной книги макросов? не тянуть же макрос с собой во все нужные книги.
Скриптом открыть файл, изменить и записать
 
Цитата
buchlotnik написал:
БЕЗ активации
не работает этот код, что тут не так в строке 5? Не копирует.
Код
Sub Forma_5_Create()
 Dim oBook, oSheet ' Application Excel, Book, Sheet
 Set oBook = Workbooks.Open("D:\Riz\2020\Ïðèëîæåíèå 5.xlsx")
 Set oSheet = oBook.Sheets(1)
 
 ThisWorkbook.Sheets("Лист1").Range([A9], [B9].End(xlDown)).Copy oSheet.[D2]
 oBook.Save
 oBook.Close
End Sub

вот так работает, но файл при этом не меняется, т.е. копирование не выполняется

Код
Sub Forma_5_Create()
    Dim oBook, oSheet ' Application Excel, Book, Sheet
    Set oBook = Workbooks.Open("D:\Riz\2020\Ïðèëîæåíèå 5.xlsx")
    Set oSheet = oBook.Sheets(1)
    
    ThisWorkbook.Sheets("Лист1").Range("A9:B15").Copy _
        Destination:=oSheet.Range("D2")
    oBook.Save
    oBook.Close
End Sub

Изменено: RizONE - 10.05.2020 13:59:31
Скриптом открыть файл, изменить и записать
 
Цитата
ocet p написал:
"Select" предназначен только для активного объекта (тут: "Приложение 5.xlsx" и какой-то лист), так как объект в данный момент неактивен (тут: "Лист1" в "ThisWorkbook"), это будет ошибка выполнения команды ("Select").
вот это и не понятно было изначально: как делать активным сначала Лист1 открываемого файла. копировать данные, а потом переключаться на лист oSheet второго, записываемого файла?
Скриптом открыть файл, изменить и записать
 
Спасибо большое, идею понял

ЗЫ
не идет. дает ошибку "метод Select ... завершен неверно" на выборе Лист1
Код
Sub Forma_5_Create()
    Dim oBook, oSheet ' Application Excel, Book, Sheet
    Set oBook = Workbooks.Open("D:\Riz\2020\Приложение 5.xlsx")
    Set oSheet = oBook.Sheets(1)
    
    ThisWorkbook.Sheets("Лист1").Select
    Range("A9:B9").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    oSheet.Select
    Range("D6").Select
    ActiveSheet.Paste
    oBook.Save
    oBook.Close
End Sub
Изменено: RizONE - 07.05.2020 14:21:10
Скриптом открыть файл, изменить и записать
 
Да показывать  то особо и нечего
имеем два файла: файл_1 и файл_2
Открываем файл_1 и тыкаем на Макрос1
скрипт открывает (не обязательно делать его видимым) файл_2 и начиная со второй строки (в первой шапка отчета):
в колонку А ставит данные из колонки С файл_1
в колонку В ставит данные из колонки А файл_1
сохраняет файл_2 в корень диска Д
Скриптом открыть файл, изменить и записать
 
из...
код нашел на просторах сети :oops:  
Скриптом открыть файл, изменить и записать
 
Доброе.
Задача следующая: имеется файл с данными и файл с шапкой. Нужно данные перенести в нужные колонки файла с шапкой и потом этот файл сохранить.
Реализация: открываем файл с данными, жмем на выполнение Макрос1 и на выходе, в какой нить заданной папке получаем результат.
Собственно открыть файл то я могу. типа:
Код
Dim oAppExcel, oBook, oSheet
Set oAppExcel = CreateObject("Excel.Application")
Set oBook = oAppExcel.Workbooks.Open("D:\Riz\2020\Приложение 5.xlsx")
Set oSheet = oBook.Sheets(1)
Но вот как потом обращаться к ячейкам открытого листа файла с данными не знаю (
Нужно сделать что-то типа
Код
Sheets("Лист2").Select
Range("C1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
oSheet.Select
Range("I6").Select
ActiveSheet.Paste
Страницы: 1
Наверх