Домашняя страница Undo Do Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Записи участника (krosav4ig) - Мир MS Excel

Результаты поиска
krosav4ig Дата: Суббота, 19.01.2019, 19:02 | Сообщение № 581 | Тема: Ускорить простановку гиперссылок
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Здравствуйте. И вас с праздником!
пробуйте так [vba]
Код
Public Sub creategyperlinks(ByVal sheetname As String, ByVal colname2 As String, ByVal colname As String, ByVal startrow As Integer, ByVal path As String)
    Dim sMask As Variant, sFile As Variant, c As Range, Addr$      'объявление переменных
    Dim iMaxRowCount1 As Integer
    
    iMaxRowCount1 = getrowCounts(colname2, startrow)
    
     For Each sMask In Array("*.pdf", "*.7z")
        For Each sFile In FilenamesCollection(path, sMask, 5)
            With Sheets(sheetname).Range(colname & startrow & ":" & colname & iMaxRowCount1)
                sName = Mid(sFile, InStrRev(sFile, "\") + 1, Len(sFile))
                Set c = Range.Find(Mid(sName, 1, InStrRev(sName, ".") - 1), , xlValues, xlWhole, , , False, , False)
                If Not c Is Nothing Then
                    Addr = c.Address
                    Do
                        If c.Hyperlinks.Count = 0 Then
                            c.Hyperlinks.Add c, sFile, , , c.Text
                        End If
                        Set r = .FindNext(c)
                    Loop While Not c Is Nothing And c.Address <> Addr
                End If
            End With
        Next sFile
    Next sMask
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеЗдравствуйте. И вас с праздником!
пробуйте так [vba]
Код
Public Sub creategyperlinks(ByVal sheetname As String, ByVal colname2 As String, ByVal colname As String, ByVal startrow As Integer, ByVal path As String)
    Dim sMask As Variant, sFile As Variant, c As Range, Addr$      'объявление переменных
    Dim iMaxRowCount1 As Integer
    
    iMaxRowCount1 = getrowCounts(colname2, startrow)
    
     For Each sMask In Array("*.pdf", "*.7z")
        For Each sFile In FilenamesCollection(path, sMask, 5)
            With Sheets(sheetname).Range(colname & startrow & ":" & colname & iMaxRowCount1)
                sName = Mid(sFile, InStrRev(sFile, "\") + 1, Len(sFile))
                Set c = Range.Find(Mid(sName, 1, InStrRev(sName, ".") - 1), , xlValues, xlWhole, , , False, , False)
                If Not c Is Nothing Then
                    Addr = c.Address
                    Do
                        If c.Hyperlinks.Count = 0 Then
                            c.Hyperlinks.Add c, sFile, , , c.Text
                        End If
                        Set r = .FindNext(c)
                    Loop While Not c Is Nothing And c.Address <> Addr
                End If
            End With
        Next sFile
    Next sMask
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 19.01.2019 в 19:02
krosav4ig Дата: Пятница, 18.01.2019, 18:25 | Сообщение № 582 | Тема: Копирование файлов из одной папки в другую по условию
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
пробуйте так[vba]
Код
Option Explicit
Sub test()
    Dim sInPath$, sOutPath$, oFSO As Object, sUser$, sPass$
    
    sUser = "ИмяПользователя": sPass = "Пароль" 'нужно ввести учетные данные на обменнике
    sInPath = "\\10.**.***.*\папка\подпапка"
    sOutPath = "F:\PQ\Копирование между папками\Куда"
    
    With CreateObject("WScript.Network")
        .MapNetworkDrive "", sInPath, False, sUser, sPass
        
        Set oFSO = CreateObject("scripting.filesystemobject")
        CopyRecursive oFSO, sInPath, sOutPath, "*.xls*"
        Set oFSO = Nothing
        
        .RemoveNetworkDrive sInPath, True, False
    End With
    
End Sub
Private Sub CopyRecursive(ByRef oFSO As Object, sCopyFrom$, sCopyTo$, sMask$)
    Dim oFile As Object, oFolder As Object
    Set oFolder = oFSO.GetFolder(sCopyFrom)
    For Each oFile In oFolder.Files
        If oFile.Name Like "*+*.xls*" Then oFile.Copy sCopyTo & "\" & oFile.Name
    Next
    For Each oFolder In oFolder.SubFolders
        CopyRecursive oFSO, oFolder.Path, sCopyTo, sMask
    Next
    Set oFile = Nothing
    Set oFolder = Nothing
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Пятница, 18.01.2019, 18:26
 
Ответить
Сообщениепробуйте так[vba]
Код
Option Explicit
Sub test()
    Dim sInPath$, sOutPath$, oFSO As Object, sUser$, sPass$
    
    sUser = "ИмяПользователя": sPass = "Пароль" 'нужно ввести учетные данные на обменнике
    sInPath = "\\10.**.***.*\папка\подпапка"
    sOutPath = "F:\PQ\Копирование между папками\Куда"
    
    With CreateObject("WScript.Network")
        .MapNetworkDrive "", sInPath, False, sUser, sPass
        
        Set oFSO = CreateObject("scripting.filesystemobject")
        CopyRecursive oFSO, sInPath, sOutPath, "*.xls*"
        Set oFSO = Nothing
        
        .RemoveNetworkDrive sInPath, True, False
    End With
    
End Sub
Private Sub CopyRecursive(ByRef oFSO As Object, sCopyFrom$, sCopyTo$, sMask$)
    Dim oFile As Object, oFolder As Object
    Set oFolder = oFSO.GetFolder(sCopyFrom)
    For Each oFile In oFolder.Files
        If oFile.Name Like "*+*.xls*" Then oFile.Copy sCopyTo & "\" & oFile.Name
    Next
    For Each oFolder In oFolder.SubFolders
        CopyRecursive oFSO, oFolder.Path, sCopyTo, sMask
    Next
    Set oFile = Nothing
    Set oFolder = Nothing
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 18.01.2019 в 18:25
krosav4ig Дата: Пятница, 18.01.2019, 01:15 | Сообщение № 583 | Тема: Как удалить из txt-файла все строки кроме первой?
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
[vba]
Код
    Dim var0 As String: var0 = "C:\........."
    Dim s As String
    With New ADODB.Stream
        .Type = 2: .Mode = 3: .Charset = "utf-8": .LineSeparator = -1:
        .Open: .LoadFromFile var0: s = .ReadText(-2): .Close
        .Open: .WriteText s: .SaveToFile var0, 2: .Close
    End With
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Пятница, 18.01.2019, 01:21
 
Ответить
Сообщение[vba]
Код
    Dim var0 As String: var0 = "C:\........."
    Dim s As String
    With New ADODB.Stream
        .Type = 2: .Mode = 3: .Charset = "utf-8": .LineSeparator = -1:
        .Open: .LoadFromFile var0: s = .ReadText(-2): .Close
        .Open: .WriteText s: .SaveToFile var0, 2: .Close
    End With
[/vba]

Автор - krosav4ig
Дата добавления - 18.01.2019 в 01:15
krosav4ig Дата: Пятница, 18.01.2019, 00:08 | Сообщение № 584 | Тема: Копирование файлов из одной папки в другую по условию
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
[vba]
Код
Option Explicit
Sub test()
    Dim sInPath$, sOutPath$, oFSO As Object
    
    sInPath = "C:\Users\Мвидео\Desktop\Откуда"
    sOutPath = "C:\Users\Мвидео\Desktop\Куда"
    
    Set oFSO = CreateObject("scripting.filesystemobject")
    
    CopyRecursive oFSO, sInPath, sOutPath, "*.xls*"
        
    Set oFSO = Nothing
End Sub
Private Sub CopyRecursive(ByRef oFSO As Object, sCopyFrom$, sCopyTo$, sMask$)
    Dim oFile As Object, oFolder As Object
    Set oFolder = oFSO.GetFolder(sCopyFrom)
    For Each oFile In oFolder.Files
        If oFile.Name Like "*+*.xls*" Then oFile.Copy sCopyTo & "\" & oFile.Name
    Next
    For Each oFolder In oFolder.SubFolders
        CopyRecursive oFSO, oFolder.Path, sCopyTo, sMask
    Next
    Set oFile = Nothing
    Set oFolder = Nothing
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение[vba]
Код
Option Explicit
Sub test()
    Dim sInPath$, sOutPath$, oFSO As Object
    
    sInPath = "C:\Users\Мвидео\Desktop\Откуда"
    sOutPath = "C:\Users\Мвидео\Desktop\Куда"
    
    Set oFSO = CreateObject("scripting.filesystemobject")
    
    CopyRecursive oFSO, sInPath, sOutPath, "*.xls*"
        
    Set oFSO = Nothing
End Sub
Private Sub CopyRecursive(ByRef oFSO As Object, sCopyFrom$, sCopyTo$, sMask$)
    Dim oFile As Object, oFolder As Object
    Set oFolder = oFSO.GetFolder(sCopyFrom)
    For Each oFile In oFolder.Files
        If oFile.Name Like "*+*.xls*" Then oFile.Copy sCopyTo & "\" & oFile.Name
    Next
    For Each oFolder In oFolder.SubFolders
        CopyRecursive oFSO, oFolder.Path, sCopyTo, sMask
    Next
    Set oFile = Nothing
    Set oFolder = Nothing
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 18.01.2019 в 00:08
krosav4ig Дата: Среда, 16.01.2019, 23:53 | Сообщение № 585 | Тема: Перенос итоговой суммы по столбцам при формировании отчета
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
parovoznik, ну дык вы ж в одну ячейку эти итоги пишете, а макрос все правильно считает, ровно то что ему написано


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеparovoznik, ну дык вы ж в одну ячейку эти итоги пишете, а макрос все правильно считает, ровно то что ему написано

Автор - krosav4ig
Дата добавления - 16.01.2019 в 23:53
krosav4ig Дата: Среда, 16.01.2019, 23:15 | Сообщение № 586 | Тема: Копирование файлов из одной папки в другую по условию
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
это были не рекомендации, а цитаты из серии "найди 2 отличия" :)
у вас в коде [vba]
Код
For Each iFile In Folder.Files
[/vba] задана переменная iFile, а внутри цикла почему-то пишете fil (видимо, не заметили при копировании из другого макроса)
вам нужно было просто заменить в вашем макросе 8 строку на ту, что я написал
[vba]
Код
If iFile.Name Like "*+*.xls*" Then iFile.Copy "C:\Users\Мвидео\Desktop\Куда" & "\" & iFile.Name
[/vba]

[p.s.]Получение списка файлов в папке и подпапках средствами VBA


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Среда, 16.01.2019, 23:18
 
Ответить
Сообщениеэто были не рекомендации, а цитаты из серии "найди 2 отличия" :)
у вас в коде [vba]
Код
For Each iFile In Folder.Files
[/vba] задана переменная iFile, а внутри цикла почему-то пишете fil (видимо, не заметили при копировании из другого макроса)
вам нужно было просто заменить в вашем макросе 8 строку на ту, что я написал
[vba]
Код
If iFile.Name Like "*+*.xls*" Then iFile.Copy "C:\Users\Мвидео\Desktop\Куда" & "\" & iFile.Name
[/vba]

[p.s.]Получение списка файлов в папке и подпапках средствами VBA

Автор - krosav4ig
Дата добавления - 16.01.2019 в 23:15
krosav4ig Дата: Среда, 16.01.2019, 23:04 | Сообщение № 587 | Тема: Перенос итоговой суммы по столбцам при формировании отчета
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
parovoznik, дописАл в посте выше, не заметил сразу


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеparovoznik, дописАл в посте выше, не заметил сразу

Автор - krosav4ig
Дата добавления - 16.01.2019 в 23:04
krosav4ig Дата: Среда, 16.01.2019, 22:58 | Сообщение № 588 | Тема: Перенос итоговой суммы по столбцам при формировании отчета
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
parovoznik, замените ; на , и диапазон в [] всуньте
[vba]
Код
.Cells(LR + 1, 6)=Application.WorksheetFunction.VLookup("Итого*",[реестр!$B$3:$I$99],4,0)
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Среда, 16.01.2019, 23:00
 
Ответить
Сообщениеparovoznik, замените ; на , и диапазон в [] всуньте
[vba]
Код
.Cells(LR + 1, 6)=Application.WorksheetFunction.VLookup("Итого*",[реестр!$B$3:$I$99],4,0)
[/vba]

Автор - krosav4ig
Дата добавления - 16.01.2019 в 22:58
krosav4ig Дата: Среда, 16.01.2019, 22:47 | Сообщение № 589 | Тема: Копирование файлов из одной папки в другую по условию
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Здравствуйте
fso.GetFileName(fil.Path)

For Each iFile In Folder.Files

[vba]
Код
If iFile.Name Like "*+*.xls*" Then iFile.Copy "C:\Users\Мвидео\Desktop\Куда" & "\" & iFile.Name
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеЗдравствуйте
fso.GetFileName(fil.Path)

For Each iFile In Folder.Files

[vba]
Код
If iFile.Name Like "*+*.xls*" Then iFile.Copy "C:\Users\Мвидео\Desktop\Куда" & "\" & iFile.Name
[/vba]

Автор - krosav4ig
Дата добавления - 16.01.2019 в 22:47
krosav4ig Дата: Среда, 16.01.2019, 16:37 | Сообщение № 590 | Тема: Медленно обрабатывается массив данных
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Sancho, если уж и делать умную таблицу, то и в сводной лучше заменить источник данных на Таблица1[#Все]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеSancho, если уж и делать умную таблицу, то и в сводной лучше заменить источник данных на Таблица1[#Все]

Автор - krosav4ig
Дата добавления - 16.01.2019 в 16:37
krosav4ig Дата: Вторник, 15.01.2019, 22:39 | Сообщение № 591 | Тема: Диаграмма Ганта на спарклайнах
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
для Ганта у Fabrice Rimlinger есть надстройка, хоть и не спарклайны, но может стоит посмотреть в эту сторону
ссылко
Надстройка x86 Надстройка x64 Пример использования 1 Пример использования 2
в файлах примера может понадобиться удалить из формул ссылку на файл надстройки


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениедля Ганта у Fabrice Rimlinger есть надстройка, хоть и не спарклайны, но может стоит посмотреть в эту сторону
ссылко
Надстройка x86 Надстройка x64 Пример использования 1 Пример использования 2
в файлах примера может понадобиться удалить из формул ссылку на файл надстройки

Автор - krosav4ig
Дата добавления - 15.01.2019 в 22:39
krosav4ig Дата: Вторник, 15.01.2019, 21:31 | Сообщение № 592 | Тема: Трансформировать таблицу в другой вид
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
до кучи, массивная гипер-монстро-формула
Код
=ЕСЛИОШИБКА(ЕСЛИ(СТРОКА()=3;ВЫБОР(ПРОСМОТР(СТОЛБЕЦ();МУМНОЖ(ЕСЛИ({1:2:3}>={1;2;3};$A$1:$C$1*{0;1;1}+{0;1;0};);{1:1:1});{1;2;3});ИНДЕКС(Table;$C$1;СТОЛБЕЦ()-ПРОСМОТР(СТОЛБЕЦ();МУМНОЖ(ЕСЛИ({1:2:3}>={1;2;3};$A$1:$C$1*{0;1;1}+{0;1;0};);{1:1:1}))+1-1)&"";ИНДЕКС($E$1:ИНДЕКС($1:$1;$C$1+4);СТОЛБЕЦ()-ПРОСМОТР(СТОЛБЕЦ();МУМНОЖ(ЕСЛИ({1:2:3}>={1;2;3};$A$1:$C$1*{0;1;1}+{0;1;0};);{1:1:1}))+1)&"";ЕСЛИ(СТОЛБЕЦ()-ПРОСМОТР(СТОЛБЕЦ();МУМНОЖ(ЕСЛИ({1:2:3}>={1;2;3};$A$1:$C$1*{0;1;1}+{0;1;0};);{1:1:1}))+1>$D$1;"";ЕСЛИ($D$1>1;ЕСЛИОШИБКА(ЕСЛИ(ИНДЕКС(ИНДЕКС(Table;1;$B$1+1):ИНДЕКС(Table;$C$1;ЧИСЛСТОЛБ(Table));$C$1;1)=ИНДЕКС(ИНДЕКС(Table;1;$B$1+1):ИНДЕКС(Table;$C$1;ЧИСЛСТОЛБ(Table));$C$1;$D$1+1);ИНДЕКС(ИНДЕКС(Table;1;$B$1+1):ИНДЕКС(Table;$C$1;ЧИСЛСТОЛБ(Table));$C$1;ОСТАТ(СТОЛБЕЦ()-ПРОСМОТР(СТОЛБЕЦ();МУМНОЖ(ЕСЛИ({1:2:3}>={1;2;3};$A$1:$C$1*{0;1;1}+{0;1;0};);{1:1:1}))+1-1;$D$1)+1);СТОЛБЕЦ()-ПРОСМОТР(СТОЛБЕЦ();МУМНОЖ(ЕСЛИ({1:2:3}>={1;2;3};$A$1:$C$1*{0;1;1}+{0;1;0};);{1:1:1}))+1);СТОЛБЕЦ()-ПРОСМОТР(СТОЛБЕЦ();МУМНОЖ(ЕСЛИ({1:2:3}>={1;2;3};$A$1:$C$1*{0;1;1}+{0;1;0};);{1:1:1}))+1);ЕСЛИ(СТОЛБЕЦ()-ПРОСМОТР(СТОЛБЕЦ();МУМНОЖ(ЕСЛИ({1:2:3}>={1;2;3};$A$1:$C$1*{0;1;1}+{0;1;0};);{1:1:1}))+1-1;"";"Значение")))&"");ВЫБОР(ПРОСМОТР(СТОЛБЕЦ();МУМНОЖ(ЕСЛИ({1:2:3}>={1;2;3};$A$1:$C$1*{0;1;1}+{0;1;0};);{1:1:1});{1;2;3});ИНДЕКС(ИНДЕКС(Table;$C$1+1;1):ИНДЕКС(Table;ЧСТРОК(Table);$B$1);ОТБР((СТРОКА(A1)-2)/ЧИСЛСТОЛБ(ИНДЕКС(Table;$C$1+1;$B$1+1):ИНДЕКС(Table;ЧСТРОК(Table);ЧИСЛСТОЛБ(Table)))*$D$1)+1;СТОЛБЕЦ()-ПРОСМОТР(СТОЛБЕЦ();МУМНОЖ(ЕСЛИ({1:2:3}>={1;2;3};$A$1:$C$1*{0;1;1}+{0;1;0};);{1:1:1}))+1-1);ЕСЛИ(ДЛСТР(ИНДЕКС(ИНДЕКС(Table;$C$1+1;1):ИНДЕКС(Table;ЧСТРОК(Table);$B$1);ОТБР((СТРОКА(A1)-2)/ЧИСЛСТОЛБ(ИНДЕКС(Table;$C$1+1;$B$1+1):ИНДЕКС(Table;ЧСТРОК(Table);ЧИСЛСТОЛБ(Table)))*$D$1)+1;1));ИНДЕКС(ИНДЕКС(Table;1;$B$1+1):ИНДЕКС(Table;$C$1;ЧИСЛСТОЛБ(Table));СТОЛБЕЦ()-ПРОСМОТР(СТОЛБЕЦ();МУМНОЖ(ЕСЛИ({1:2:3}>={1;2;3};$A$1:$C$1*{0;1;1}+{0;1;0};);{1:1:1}))+1;ОСТАТ((СТРОКА(A1)-2);ЧИСЛСТОЛБ(ИНДЕКС(Table;$C$1+1;$B$1+1):ИНДЕКС(Table;ЧСТРОК(Table);ЧИСЛСТОЛБ(Table)))/$D$1)*$D$1+1);"");ЕСЛИ(СТОЛБЕЦ()-ПРОСМОТР(СТОЛБЕЦ();МУМНОЖ(ЕСЛИ({1:2:3}>={1;2;3};$A$1:$C$1*{0;1;1}+{0;1;0};);{1:1:1}))+1>$D$1;"";ИНДЕКС(ИНДЕКС(Table;$C$1+1;$B$1+1):ИНДЕКС(Table;ЧСТРОК(Table);ЧИСЛСТОЛБ(Table));ОТБР((СТРОКА(A1)-2)/ЧИСЛСТОЛБ(ИНДЕКС(Table;$C$1+1;$B$1+1):ИНДЕКС(Table;ЧСТРОК(Table);ЧИСЛСТОЛБ(Table)))*$D$1)+1;ОСТАТ((СТРОКА(A1)-2);ЧИСЛСТОЛБ(ИНДЕКС(Table;$C$1+1;$B$1+1):ИНДЕКС(Table;ЧСТРОК(Table);ЧИСЛСТОЛБ(Table)))/$D$1)*$D$1+СТОЛБЕЦ()-ПРОСМОТР(СТОЛБЕЦ();МУМНОЖ(ЕСЛИ({1:2:3}>={1;2;3};$A$1:$C$1*{0;1;1}+{0;1;0};);{1:1:1}))+1))));"")

В файле 6988119-3.xlsx большая часть этой формулы заныкано в диспетчер имен, в таблице формула
Код
=ЕСЛИОШИБКА(ЕСЛИ(СТРОКА()=3;ВЫБОР(nn;h_1&"";h_2&"";h_3);ВЫБОР(nn;f_1;f_2;f_3));"")
К сообщению приложен файл: 6988119-2.xlsx (27.3 Kb) · 6988119-3.xlsx (22.8 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Вторник, 15.01.2019, 21:44
 
Ответить
Сообщениедо кучи, массивная гипер-монстро-формула
Код
=ЕСЛИОШИБКА(ЕСЛИ(СТРОКА()=3;ВЫБОР(ПРОСМОТР(СТОЛБЕЦ();МУМНОЖ(ЕСЛИ({1:2:3}>={1;2;3};$A$1:$C$1*{0;1;1}+{0;1;0};);{1:1:1});{1;2;3});ИНДЕКС(Table;$C$1;СТОЛБЕЦ()-ПРОСМОТР(СТОЛБЕЦ();МУМНОЖ(ЕСЛИ({1:2:3}>={1;2;3};$A$1:$C$1*{0;1;1}+{0;1;0};);{1:1:1}))+1-1)&"";ИНДЕКС($E$1:ИНДЕКС($1:$1;$C$1+4);СТОЛБЕЦ()-ПРОСМОТР(СТОЛБЕЦ();МУМНОЖ(ЕСЛИ({1:2:3}>={1;2;3};$A$1:$C$1*{0;1;1}+{0;1;0};);{1:1:1}))+1)&"";ЕСЛИ(СТОЛБЕЦ()-ПРОСМОТР(СТОЛБЕЦ();МУМНОЖ(ЕСЛИ({1:2:3}>={1;2;3};$A$1:$C$1*{0;1;1}+{0;1;0};);{1:1:1}))+1>$D$1;"";ЕСЛИ($D$1>1;ЕСЛИОШИБКА(ЕСЛИ(ИНДЕКС(ИНДЕКС(Table;1;$B$1+1):ИНДЕКС(Table;$C$1;ЧИСЛСТОЛБ(Table));$C$1;1)=ИНДЕКС(ИНДЕКС(Table;1;$B$1+1):ИНДЕКС(Table;$C$1;ЧИСЛСТОЛБ(Table));$C$1;$D$1+1);ИНДЕКС(ИНДЕКС(Table;1;$B$1+1):ИНДЕКС(Table;$C$1;ЧИСЛСТОЛБ(Table));$C$1;ОСТАТ(СТОЛБЕЦ()-ПРОСМОТР(СТОЛБЕЦ();МУМНОЖ(ЕСЛИ({1:2:3}>={1;2;3};$A$1:$C$1*{0;1;1}+{0;1;0};);{1:1:1}))+1-1;$D$1)+1);СТОЛБЕЦ()-ПРОСМОТР(СТОЛБЕЦ();МУМНОЖ(ЕСЛИ({1:2:3}>={1;2;3};$A$1:$C$1*{0;1;1}+{0;1;0};);{1:1:1}))+1);СТОЛБЕЦ()-ПРОСМОТР(СТОЛБЕЦ();МУМНОЖ(ЕСЛИ({1:2:3}>={1;2;3};$A$1:$C$1*{0;1;1}+{0;1;0};);{1:1:1}))+1);ЕСЛИ(СТОЛБЕЦ()-ПРОСМОТР(СТОЛБЕЦ();МУМНОЖ(ЕСЛИ({1:2:3}>={1;2;3};$A$1:$C$1*{0;1;1}+{0;1;0};);{1:1:1}))+1-1;"";"Значение")))&"");ВЫБОР(ПРОСМОТР(СТОЛБЕЦ();МУМНОЖ(ЕСЛИ({1:2:3}>={1;2;3};$A$1:$C$1*{0;1;1}+{0;1;0};);{1:1:1});{1;2;3});ИНДЕКС(ИНДЕКС(Table;$C$1+1;1):ИНДЕКС(Table;ЧСТРОК(Table);$B$1);ОТБР((СТРОКА(A1)-2)/ЧИСЛСТОЛБ(ИНДЕКС(Table;$C$1+1;$B$1+1):ИНДЕКС(Table;ЧСТРОК(Table);ЧИСЛСТОЛБ(Table)))*$D$1)+1;СТОЛБЕЦ()-ПРОСМОТР(СТОЛБЕЦ();МУМНОЖ(ЕСЛИ({1:2:3}>={1;2;3};$A$1:$C$1*{0;1;1}+{0;1;0};);{1:1:1}))+1-1);ЕСЛИ(ДЛСТР(ИНДЕКС(ИНДЕКС(Table;$C$1+1;1):ИНДЕКС(Table;ЧСТРОК(Table);$B$1);ОТБР((СТРОКА(A1)-2)/ЧИСЛСТОЛБ(ИНДЕКС(Table;$C$1+1;$B$1+1):ИНДЕКС(Table;ЧСТРОК(Table);ЧИСЛСТОЛБ(Table)))*$D$1)+1;1));ИНДЕКС(ИНДЕКС(Table;1;$B$1+1):ИНДЕКС(Table;$C$1;ЧИСЛСТОЛБ(Table));СТОЛБЕЦ()-ПРОСМОТР(СТОЛБЕЦ();МУМНОЖ(ЕСЛИ({1:2:3}>={1;2;3};$A$1:$C$1*{0;1;1}+{0;1;0};);{1:1:1}))+1;ОСТАТ((СТРОКА(A1)-2);ЧИСЛСТОЛБ(ИНДЕКС(Table;$C$1+1;$B$1+1):ИНДЕКС(Table;ЧСТРОК(Table);ЧИСЛСТОЛБ(Table)))/$D$1)*$D$1+1);"");ЕСЛИ(СТОЛБЕЦ()-ПРОСМОТР(СТОЛБЕЦ();МУМНОЖ(ЕСЛИ({1:2:3}>={1;2;3};$A$1:$C$1*{0;1;1}+{0;1;0};);{1:1:1}))+1>$D$1;"";ИНДЕКС(ИНДЕКС(Table;$C$1+1;$B$1+1):ИНДЕКС(Table;ЧСТРОК(Table);ЧИСЛСТОЛБ(Table));ОТБР((СТРОКА(A1)-2)/ЧИСЛСТОЛБ(ИНДЕКС(Table;$C$1+1;$B$1+1):ИНДЕКС(Table;ЧСТРОК(Table);ЧИСЛСТОЛБ(Table)))*$D$1)+1;ОСТАТ((СТРОКА(A1)-2);ЧИСЛСТОЛБ(ИНДЕКС(Table;$C$1+1;$B$1+1):ИНДЕКС(Table;ЧСТРОК(Table);ЧИСЛСТОЛБ(Table)))/$D$1)*$D$1+СТОЛБЕЦ()-ПРОСМОТР(СТОЛБЕЦ();МУМНОЖ(ЕСЛИ({1:2:3}>={1;2;3};$A$1:$C$1*{0;1;1}+{0;1;0};);{1:1:1}))+1))));"")

В файле 6988119-3.xlsx большая часть этой формулы заныкано в диспетчер имен, в таблице формула
Код
=ЕСЛИОШИБКА(ЕСЛИ(СТРОКА()=3;ВЫБОР(nn;h_1&"";h_2&"";h_3);ВЫБОР(nn;f_1;f_2;f_3));"")

Автор - krosav4ig
Дата добавления - 15.01.2019 в 21:31
krosav4ig Дата: Понедельник, 14.01.2019, 01:21 | Сообщение № 593 | Тема: Скачки интерфейса Excel 2016 при работе на 2 мониторах
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Попробуйте отключить аппаратное ускорение обработки изображения
Цитата
Запустите любую программу Office.
На вкладке Файл выберите пункт Параметры.
В диалоговом окне Параметры выберите категорию Дополнительно.
В списке доступных параметров, установите флажок в поле Отключить аппаратное ускорение обработки изображения.

и обновить драйвер видеокарты не помешает
Проблемы отображения в клиентских приложениях Office


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеПопробуйте отключить аппаратное ускорение обработки изображения
Цитата
Запустите любую программу Office.
На вкладке Файл выберите пункт Параметры.
В диалоговом окне Параметры выберите категорию Дополнительно.
В списке доступных параметров, установите флажок в поле Отключить аппаратное ускорение обработки изображения.

и обновить драйвер видеокарты не помешает
Проблемы отображения в клиентских приложениях Office

Автор - krosav4ig
Дата добавления - 14.01.2019 в 01:21
krosav4ig Дата: Понедельник, 14.01.2019, 00:54 | Сообщение № 594 | Тема: Обработка таблицы excel для перевода в текстовый файл
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
на выходных написал, да как-то выложить забыл, на счет кодировки не уверен

[vba]
Код
Sub ExportDSL()
    Dim col As Range, ar As Range, c As Range, c1 As Range
    Dim fs As Object, i&, sColor$, sFilePath$
    
    Set fs = CreateObject("ADODB.Stream")
    
    fs.Open: fs.Type = 2: fs.Charset = "unicode"
    fs.WriteText "Тезаурус" & vbCrLf & vbCrLf

    With ActiveSheet.UsedRange
        fs.WriteText Chr(9) & "[m1][b][c red]<<""" & .Cells(1) & """>>[/c][/b]" & vbCrLf
        For Each col In .Resize(, .Columns.Count - 1).Columns
            
            Select Case col.Column
                Case 1: sColor = "green"
                Case 2: sColor = "dodgerblue"
            End Select 'col.Column
            
            For Each ar In col.SpecialCells(2, 23).Areas
                Set c = IIf(ar.Cells.Count = 1, ar, ar.End(xlDown)(1, 1))
                If HasChild(c) Then
                    fs.WriteText vbCrLf & """" & c & """" & vbCrLf
                    For Each c1 In Range(c(2, 2), c.End(xlDown).Offset(-1, 1)).SpecialCells(2, 23).Cells
                        fs.WriteText Chr(9) & "[m1][b][c " & IIf(HasChild(c1), sColor, _
                            "blueviolet") & "]<<""" & c1 & """>>[/c][/b]" & vbCrLf
                    Next c1
                End If 'HasChild(c)
        Next ar, col
    End With 'ActiveSheet.UsedRange
    
    sFilePath = Application.GetSaveAsFilename(Mid(ThisWorkbook.FullName, 1, _
        InStrRev(ThisWorkbook.FullName, ".") - 1), _
        "Файлы словаря (*.dsl),*.dsl,Текстовые файлы (*.txt),*.txt")
        
    fs.SaveToFile sFilePath, 2: fs.Close: Set fs = Nothing
End Sub
Private Function HasChild(r As Range) As Boolean
    HasChild = IsEmpty(r(2)) And Not IsEmpty(r(2, 2))
End Function
[/vba]
К сообщению приложен файл: 4437057-1-.xlsm (19.8 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениена выходных написал, да как-то выложить забыл, на счет кодировки не уверен

[vba]
Код
Sub ExportDSL()
    Dim col As Range, ar As Range, c As Range, c1 As Range
    Dim fs As Object, i&, sColor$, sFilePath$
    
    Set fs = CreateObject("ADODB.Stream")
    
    fs.Open: fs.Type = 2: fs.Charset = "unicode"
    fs.WriteText "Тезаурус" & vbCrLf & vbCrLf

    With ActiveSheet.UsedRange
        fs.WriteText Chr(9) & "[m1][b][c red]<<""" & .Cells(1) & """>>[/c][/b]" & vbCrLf
        For Each col In .Resize(, .Columns.Count - 1).Columns
            
            Select Case col.Column
                Case 1: sColor = "green"
                Case 2: sColor = "dodgerblue"
            End Select 'col.Column
            
            For Each ar In col.SpecialCells(2, 23).Areas
                Set c = IIf(ar.Cells.Count = 1, ar, ar.End(xlDown)(1, 1))
                If HasChild(c) Then
                    fs.WriteText vbCrLf & """" & c & """" & vbCrLf
                    For Each c1 In Range(c(2, 2), c.End(xlDown).Offset(-1, 1)).SpecialCells(2, 23).Cells
                        fs.WriteText Chr(9) & "[m1][b][c " & IIf(HasChild(c1), sColor, _
                            "blueviolet") & "]<<""" & c1 & """>>[/c][/b]" & vbCrLf
                    Next c1
                End If 'HasChild(c)
        Next ar, col
    End With 'ActiveSheet.UsedRange
    
    sFilePath = Application.GetSaveAsFilename(Mid(ThisWorkbook.FullName, 1, _
        InStrRev(ThisWorkbook.FullName, ".") - 1), _
        "Файлы словаря (*.dsl),*.dsl,Текстовые файлы (*.txt),*.txt")
        
    fs.SaveToFile sFilePath, 2: fs.Close: Set fs = Nothing
End Sub
Private Function HasChild(r As Range) As Boolean
    HasChild = IsEmpty(r(2)) And Not IsEmpty(r(2, 2))
End Function
[/vba]

Автор - krosav4ig
Дата добавления - 14.01.2019 в 00:54
krosav4ig Дата: Понедельник, 14.01.2019, 00:14 | Сообщение № 595 | Тема: удалить из ячейки символы содержащиеся в другой
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Вариан udf [vba]
Код
Function xx$(s1$, s2$)
    Dim s$: s = s1 + "Ў" + s2
    xx = s1
    With CreateObject("vbscript.regexp")
        .Global = True: .Pattern = "(.+)(?=.*Ў(?=.*\1))|Ў.*"
        If .test(s) Then xx = .Replace(s, "")
    End With
End Function
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Понедельник, 14.01.2019, 00:19
 
Ответить
СообщениеВариан udf [vba]
Код
Function xx$(s1$, s2$)
    Dim s$: s = s1 + "Ў" + s2
    xx = s1
    With CreateObject("vbscript.regexp")
        .Global = True: .Pattern = "(.+)(?=.*Ў(?=.*\1))|Ў.*"
        If .test(s) Then xx = .Replace(s, "")
    End With
End Function
[/vba]

Автор - krosav4ig
Дата добавления - 14.01.2019 в 00:14
krosav4ig Дата: Суббота, 12.01.2019, 19:43 | Сообщение № 596 | Тема: Добавление текущей даты в запрос Power Query
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Добрый день.
Как-то так, если память не подводит
[vba]
Код
Источник = Json.Document(Web.Contents("https://api.rasp.yandex.net/v3.0/schedule/?apikey=хххххххх-хххх-хххх-хххх-хххххххххххх&station=s9610483&" & DateTime.ToText(DateTime.Date(DateTime.LocalNow),"yyyy-MM-dd"))),
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Суббота, 12.01.2019, 19:44
 
Ответить
СообщениеДобрый день.
Как-то так, если память не подводит
[vba]
Код
Источник = Json.Document(Web.Contents("https://api.rasp.yandex.net/v3.0/schedule/?apikey=хххххххх-хххх-хххх-хххх-хххххххххххх&station=s9610483&" & DateTime.ToText(DateTime.Date(DateTime.LocalNow),"yyyy-MM-dd"))),
[/vba]

Автор - krosav4ig
Дата добавления - 12.01.2019 в 19:43
krosav4ig Дата: Суббота, 12.01.2019, 18:13 | Сообщение № 597 | Тема: Макрос стал удалять не те строки.
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Mark1976, уберите строку [vba]
Код
.Replace Empty, Addr
[/vba] и будет вам счастье


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеMark1976, уберите строку [vba]
Код
.Replace Empty, Addr
[/vba] и будет вам счастье

Автор - krosav4ig
Дата добавления - 12.01.2019 в 18:13
krosav4ig Дата: Суббота, 12.01.2019, 07:30 | Сообщение № 598 | Тема: Макрос стал удалять не те строки.
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Здравствуйте.
[vba]
Код
Sub Удалить_заголовки_и_пустые()
    Dim Addr$
    With ActiveSheet.UsedRange.Columns("A")
        Addr = "=" & .Resize(1).Offset(.Cells.Count).Address(, , Application.ReferenceStyle, 1)
        With Intersect(.Cells, .Offset(12))
            .Replace "Дата операции", Addr
            .Replace 1, Addr, xlWhole
            .Replace Empty, Addr
        End With
    End With
    Evaluate(Addr).DirectDependents.EntireRow.Delete xlUp
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеЗдравствуйте.
[vba]
Код
Sub Удалить_заголовки_и_пустые()
    Dim Addr$
    With ActiveSheet.UsedRange.Columns("A")
        Addr = "=" & .Resize(1).Offset(.Cells.Count).Address(, , Application.ReferenceStyle, 1)
        With Intersect(.Cells, .Offset(12))
            .Replace "Дата операции", Addr
            .Replace 1, Addr, xlWhole
            .Replace Empty, Addr
        End With
    End With
    Evaluate(Addr).DirectDependents.EntireRow.Delete xlUp
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 12.01.2019 в 07:30
krosav4ig Дата: Понедельник, 07.01.2019, 23:27 | Сообщение № 599 | Тема: Табуляция и подчеркивание
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
для любителей танцев с бубном есть еще вариант со связанными надписями
К сообщению приложен файл: AAAAAAA.doc (39.5 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениедля любителей танцев с бубном есть еще вариант со связанными надписями

Автор - krosav4ig
Дата добавления - 07.01.2019 в 23:27
krosav4ig Дата: Понедельник, 07.01.2019, 17:21 | Сообщение № 600 | Тема: Создание дубликата строки ниже самой себя всего листа
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Здравствуйте.
Выделяете строки, жмете на кнопку
[vba]
Код
Sub CopyRows()
    Dim I As Long
    With Selection.Rows
        For I = .Count To 1 Step -1
            With .Item(I)
                .Offset(1).Insert xlDown, 0
                .AutoFill .Resize(2), 1
                .Cells(2, 6) = "Пр.П"
            End With
        Next
    End With
End Sub
[/vba]
К сообщению приложен файл: 5253194.xls (38.0 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеЗдравствуйте.
Выделяете строки, жмете на кнопку
[vba]
Код
Sub CopyRows()
    Dim I As Long
    With Selection.Rows
        For I = .Count To 1 Step -1
            With .Item(I)
                .Offset(1).Insert xlDown, 0
                .AutoFill .Resize(2), 1
                .Cells(2, 6) = "Пр.П"
            End With
        Next
    End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 07.01.2019 в 17:21
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!