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

Вход

Регистрация

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

 

= Мир MS Excel/Поиск по заданному тексту в массиве - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск по заданному тексту в массиве (Макросы/Sub)
Поиск по заданному тексту в массиве
akaDemik Дата: Четверг, 15.10.2015, 16:15 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 67
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Приветствую!
имеется макрос, который собирает информацию с разных книг и суммирует необходимые ячейки
[vba]
Код
Sub IMPORT()
Dim srcBook
Set wb = ThisWorkbook
Set wf = WorksheetFunction
Dim oFileSystemObject As Object: Set oFileSystemObject = CreateObject("Scripting.FileSystemObject")
If oFileSystemObject.FileExists(wb.Path & "\Январь.xls") Then
Set srcBook = Workbooks.Open(Filename:=wb.Path & "\Январь.xls", ReadOnly:=True, UpdateLinks:=0)
    wb.Sheets("Главная").Range("B5") = wf.Sum(srcBook.Sheets("День1").Range("A3,A7,A9,A11"))
    wb.Sheets("Главная").Range("B6") = wf.Sum(srcBook.Sheets("День2").Range("A3,A7,A9,A11"))
    wb.Sheets("Главная").Range("B7") = wf.Sum(srcBook.Sheets("День3").Range("A3,A7,A9,A11"))
    wb.Sheets("Главная").Range("B5:B7").Font.Color = vbRed
    srcBook.Close SaveChanges:=False
End If
Dim oFileSystemObject As Object: Set oFileSystemObject = CreateObject("Scripting.FileSystemObject")
If oFileSystemObject.FileExists(wb.Path & "\Февраль.xls") Then
Set srcBook = Workbooks.Open(Filename:=wb.Path & "\Февраль.xls", ReadOnly:=True, UpdateLinks:=0)
    wb.Sheets("Главная").Range("B9") = wf.Sum(srcBook.Sheets("День1").Range("A3,A7,A9,A11"))
    wb.Sheets("Главная").Range("B10") = wf.Sum(srcBook.Sheets("День2").Range("A3,A7,A9,A11"))
    wb.Sheets("Главная").Range("B11") = wf.Sum(srcBook.Sheets("День3").Range("A3,A7,A9,A11"))
    wb.Sheets("Главная").Range("B12") = wf.Sum(srcBook.Sheets("День4").Range("A3,A7,A9,A11"))
    wb.Sheets("Главная").Range("B9:B12").Font.Color = vbRed
    srcBook.Close SaveChanges:=False
End If
Dim oFileSystemObject As Object: Set oFileSystemObject = CreateObject("Scripting.FileSystemObject")
If oFileSystemObject.FileExists(wb.Path & "\Март.xls") Then
Set srcBook = Workbooks.Open(Filename:=wb.Path & "\Март.xls", ReadOnly:=True, UpdateLinks:=0)
    wb.Sheets("Главная").Range("B14") = wf.Sum(srcBook.Sheets("День1").Range("A3,A7,A9,A11"))
    wb.Sheets("Главная").Range("B15") = wf.Sum(srcBook.Sheets("День2").Range("A3,A7,A9,A11"))
    wb.Sheets("Главная").Range("B16") = wf.Sum(srcBook.Sheets("День3").Range("A3,A7,A9,A11"))
    wb.Sheets("Главная").Range("B14:B16").Font.Color = vbRed
    srcBook.Close SaveChanges:=False
' и так далее...
End Sub
[/vba]


Сообщение отредактировал akaDemik - Пятница, 16.10.2015, 09:32
 
Ответить
СообщениеПриветствую!
имеется макрос, который собирает информацию с разных книг и суммирует необходимые ячейки
[vba]
Код
Sub IMPORT()
Dim srcBook
Set wb = ThisWorkbook
Set wf = WorksheetFunction
Dim oFileSystemObject As Object: Set oFileSystemObject = CreateObject("Scripting.FileSystemObject")
If oFileSystemObject.FileExists(wb.Path & "\Январь.xls") Then
Set srcBook = Workbooks.Open(Filename:=wb.Path & "\Январь.xls", ReadOnly:=True, UpdateLinks:=0)
    wb.Sheets("Главная").Range("B5") = wf.Sum(srcBook.Sheets("День1").Range("A3,A7,A9,A11"))
    wb.Sheets("Главная").Range("B6") = wf.Sum(srcBook.Sheets("День2").Range("A3,A7,A9,A11"))
    wb.Sheets("Главная").Range("B7") = wf.Sum(srcBook.Sheets("День3").Range("A3,A7,A9,A11"))
    wb.Sheets("Главная").Range("B5:B7").Font.Color = vbRed
    srcBook.Close SaveChanges:=False
End If
Dim oFileSystemObject As Object: Set oFileSystemObject = CreateObject("Scripting.FileSystemObject")
If oFileSystemObject.FileExists(wb.Path & "\Февраль.xls") Then
Set srcBook = Workbooks.Open(Filename:=wb.Path & "\Февраль.xls", ReadOnly:=True, UpdateLinks:=0)
    wb.Sheets("Главная").Range("B9") = wf.Sum(srcBook.Sheets("День1").Range("A3,A7,A9,A11"))
    wb.Sheets("Главная").Range("B10") = wf.Sum(srcBook.Sheets("День2").Range("A3,A7,A9,A11"))
    wb.Sheets("Главная").Range("B11") = wf.Sum(srcBook.Sheets("День3").Range("A3,A7,A9,A11"))
    wb.Sheets("Главная").Range("B12") = wf.Sum(srcBook.Sheets("День4").Range("A3,A7,A9,A11"))
    wb.Sheets("Главная").Range("B9:B12").Font.Color = vbRed
    srcBook.Close SaveChanges:=False
End If
Dim oFileSystemObject As Object: Set oFileSystemObject = CreateObject("Scripting.FileSystemObject")
If oFileSystemObject.FileExists(wb.Path & "\Март.xls") Then
Set srcBook = Workbooks.Open(Filename:=wb.Path & "\Март.xls", ReadOnly:=True, UpdateLinks:=0)
    wb.Sheets("Главная").Range("B14") = wf.Sum(srcBook.Sheets("День1").Range("A3,A7,A9,A11"))
    wb.Sheets("Главная").Range("B15") = wf.Sum(srcBook.Sheets("День2").Range("A3,A7,A9,A11"))
    wb.Sheets("Главная").Range("B16") = wf.Sum(srcBook.Sheets("День3").Range("A3,A7,A9,A11"))
    wb.Sheets("Главная").Range("B14:B16").Font.Color = vbRed
    srcBook.Close SaveChanges:=False
' и так далее...
End Sub
[/vba]

Автор - akaDemik
Дата добавления - 15.10.2015 в 16:15
miver Дата: Пятница, 16.10.2015, 09:52 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 37 ±
Замечаний: 0% ±

Excel 2010
akaDemik, Не совсем понял ТЗ. Может так
[vba]
Код
Sub IMPORT()
     Arr = [{"Понедельник", "Вторник", "Среда"}]

    Dim srcBook
    Set wb = ThisWorkbook
    Set wf = WorksheetFunction
    Dim oFileSystemObject As Object: Set oFileSystemObject = CreateObject("Scripting.FileSystemObject")
    If oFileSystemObject.FileExists(wb.Path & "\Январь.xls") Then
    Set srcBook = Workbooks.Open(Filename:=wb.Path & "\Январь.xls", ReadOnly:=True, UpdateLinks:=0)
        With wb.Sheets("Главная")
            If Not inArr(Arr, .Range("A5")) Then .Range("B5") = wf.Sum(srcBook.Sheets("День1").Range("A3,A7,A9,A11"))
            If Not inArr(Arr, .Range("A6")) Then .Range("B6") = wf.Sum(srcBook.Sheets("День2").Range("A3,A7,A9,A11"))
            If Not inArr(Arr, .Range("A7")) Then .Range("B7") = wf.Sum(srcBook.Sheets("День3").Range("A3,A7,A9,A11"))
            .Range("B5:B7").Font.Color = vbRed
        End With
        srcBook.Close SaveChanges:=False
    End If
' и так далее...
End Sub

Function inArr(Arr, el) As Boolean
    For Each t In Arr
        If t = el Then inArr = True: Exit Function
    Next t
    inArr = False
End Function
[/vba]
 
Ответить
СообщениеakaDemik, Не совсем понял ТЗ. Может так
[vba]
Код
Sub IMPORT()
     Arr = [{"Понедельник", "Вторник", "Среда"}]

    Dim srcBook
    Set wb = ThisWorkbook
    Set wf = WorksheetFunction
    Dim oFileSystemObject As Object: Set oFileSystemObject = CreateObject("Scripting.FileSystemObject")
    If oFileSystemObject.FileExists(wb.Path & "\Январь.xls") Then
    Set srcBook = Workbooks.Open(Filename:=wb.Path & "\Январь.xls", ReadOnly:=True, UpdateLinks:=0)
        With wb.Sheets("Главная")
            If Not inArr(Arr, .Range("A5")) Then .Range("B5") = wf.Sum(srcBook.Sheets("День1").Range("A3,A7,A9,A11"))
            If Not inArr(Arr, .Range("A6")) Then .Range("B6") = wf.Sum(srcBook.Sheets("День2").Range("A3,A7,A9,A11"))
            If Not inArr(Arr, .Range("A7")) Then .Range("B7") = wf.Sum(srcBook.Sheets("День3").Range("A3,A7,A9,A11"))
            .Range("B5:B7").Font.Color = vbRed
        End With
        srcBook.Close SaveChanges:=False
    End If
' и так далее...
End Sub

Function inArr(Arr, el) As Boolean
    For Each t In Arr
        If t = el Then inArr = True: Exit Function
    Next t
    inArr = False
End Function
[/vba]

Автор - miver
Дата добавления - 16.10.2015 в 09:52
akaDemik Дата: Пятница, 16.10.2015, 09:56 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 67
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Может быть не совсем корректно описал задачу, попробую перефразировать:
В основной книге (5264877.xslm), на листе "Главная", есть столбец А, где в диапазоне А5:А16 находится уникальный текст для поиска, для примера это "2Среда". Макрос должен отработать таким образом что, сначала открываем дополнительную книгу (Февраль.xls), находим в основной книге, в диапазоне А5:А16 необходимый текст "2Среда", потом переходим на дополнительную книгу и вставляем сумму значений
[vba]
Код
wf.Sum(srcBook.Sheets("День3").Range("A3,A7,A9,A11")
[/vba]
в ячейку B:n из основной книги, где n - это номер строки, где находится "2Среда", в данном примере это B:11
Если "2Среда" в необходимом диапазоне не найдено, то переходим к поиску "2Четверг" и соответственно вставляем сумму значений
[vba]
Код
wf.Sum(srcBook.Sheets("День4").Range("A3,A7,A9,A11")
[/vba]
в ячейку B:n из основной книги, где n - это номер строки, где находится "2Четверг", в данном примере это B:12
К сообщению приложен файл: 5264877.xlsm (15.6 Kb)


Сообщение отредактировал akaDemik - Пятница, 16.10.2015, 09:57
 
Ответить
СообщениеМожет быть не совсем корректно описал задачу, попробую перефразировать:
В основной книге (5264877.xslm), на листе "Главная", есть столбец А, где в диапазоне А5:А16 находится уникальный текст для поиска, для примера это "2Среда". Макрос должен отработать таким образом что, сначала открываем дополнительную книгу (Февраль.xls), находим в основной книге, в диапазоне А5:А16 необходимый текст "2Среда", потом переходим на дополнительную книгу и вставляем сумму значений
[vba]
Код
wf.Sum(srcBook.Sheets("День3").Range("A3,A7,A9,A11")
[/vba]
в ячейку B:n из основной книги, где n - это номер строки, где находится "2Среда", в данном примере это B:11
Если "2Среда" в необходимом диапазоне не найдено, то переходим к поиску "2Четверг" и соответственно вставляем сумму значений
[vba]
Код
wf.Sum(srcBook.Sheets("День4").Range("A3,A7,A9,A11")
[/vba]
в ячейку B:n из основной книги, где n - это номер строки, где находится "2Четверг", в данном примере это B:12

Автор - akaDemik
Дата добавления - 16.10.2015 в 09:56
akaDemik Дата: Понедельник, 19.10.2015, 11:23 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 67
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
If Not inArr(Arr, .Range(["A5")) Then .Range("B5") = wf.Sum(srcBook.Sheets("День1").Range("A3,A7,A9,A11"))

может не разобрался в функции, но из того что вижу, не подходит т.к. писал выше, строка куда необходимо вставлять значение, может отсутствовать
она может быть как "B5" так и "B6", "B7","B8" и т.д., в зависимости от того какой текст находится на Листе "Главная" в ячейке "A5"
 
Ответить
Сообщение
If Not inArr(Arr, .Range(["A5")) Then .Range("B5") = wf.Sum(srcBook.Sheets("День1").Range("A3,A7,A9,A11"))

может не разобрался в функции, но из того что вижу, не подходит т.к. писал выше, строка куда необходимо вставлять значение, может отсутствовать
она может быть как "B5" так и "B6", "B7","B8" и т.д., в зависимости от того какой текст находится на Листе "Главная" в ячейке "A5"

Автор - akaDemik
Дата добавления - 19.10.2015 в 11:23
akaDemik Дата: Четверг, 22.10.2015, 12:27 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 67
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
как-то совсем печально с ответом...
добавил архив, где соответственные файлы из примера
К сообщению приложен файл: 4554811.zip (36.5 Kb)
 
Ответить
Сообщениекак-то совсем печально с ответом...
добавил архив, где соответственные файлы из примера

Автор - akaDemik
Дата добавления - 22.10.2015 в 12:27
miver Дата: Пятница, 23.10.2015, 11:45 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 37 ±
Замечаний: 0% ±

Excel 2010
akaDemik, Все равно не понятно.
Открываю файл "Monday". Смотрю столбик "А" беру значение "1Понедельник"
Это значение нигде в файлах не встречается и другие тоже
Покажите какой результат ожидаете
 
Ответить
СообщениеakaDemik, Все равно не понятно.
Открываю файл "Monday". Смотрю столбик "А" беру значение "1Понедельник"
Это значение нигде в файлах не встречается и другие тоже
Покажите какой результат ожидаете

Автор - miver
Дата добавления - 23.10.2015 в 11:45
akaDemik Дата: Пятница, 23.10.2015, 12:55 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 67
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
miver, День1=1Понедельник
переделал названия, чтоб было понятнее
К сообщению приложен файл: 8435023.zip (36.0 Kb)
 
Ответить
Сообщениеmiver, День1=1Понедельник
переделал названия, чтоб было понятнее

Автор - akaDemik
Дата добавления - 23.10.2015 в 12:55
miver Дата: Пятница, 23.10.2015, 13:42 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 37 ±
Замечаний: 0% ±

Excel 2010
akaDemik, Так?
[vba]
Код
Sub IMPORT()
    Dim srcBook As Workbook
    Dim ws As Worksheet
    
    Set wb = ThisWorkbook
    Set ws = wb.Sheets("Главная")
    Set wf = WorksheetFunction
    Dim oFileSystemObject As Object
    Set oFileSystemObject = CreateObject("Scripting.FileSystemObject")
    Mon = [{"Январь","Февраль","Март"}]
    
    Application.ScreenUpdating = False
    For Each m In Mon
        If oFileSystemObject.FileExists(wb.Path & "\" & m & ".xls") Then
            Set srcBook = Workbooks.Open(Filename:=wb.Path & "\" & m & ".xls", ReadOnly:=True, UpdateLinks:=0)
            For Each sh In srcBook.Sheets
                Set wc = ws.Range("A:A").Find(sh.Name)
                If TypeName(wc) = "Range" Then
                    wc.Offset(0, 1).Value = wf.Sum(sh.Range("A3,A7,A9,A11"))
                    wc.Offset(0, 1).Font.Color = vbRed
                End If
            Next sh
            srcBook.Close SaveChanges:=False
        End If
    Next m
    Application.ScreenUpdating = True
End Sub
[/vba]
К сообщению приложен файл: 9932478.xlsm (18.6 Kb)
 
Ответить
СообщениеakaDemik, Так?
[vba]
Код
Sub IMPORT()
    Dim srcBook As Workbook
    Dim ws As Worksheet
    
    Set wb = ThisWorkbook
    Set ws = wb.Sheets("Главная")
    Set wf = WorksheetFunction
    Dim oFileSystemObject As Object
    Set oFileSystemObject = CreateObject("Scripting.FileSystemObject")
    Mon = [{"Январь","Февраль","Март"}]
    
    Application.ScreenUpdating = False
    For Each m In Mon
        If oFileSystemObject.FileExists(wb.Path & "\" & m & ".xls") Then
            Set srcBook = Workbooks.Open(Filename:=wb.Path & "\" & m & ".xls", ReadOnly:=True, UpdateLinks:=0)
            For Each sh In srcBook.Sheets
                Set wc = ws.Range("A:A").Find(sh.Name)
                If TypeName(wc) = "Range" Then
                    wc.Offset(0, 1).Value = wf.Sum(sh.Range("A3,A7,A9,A11"))
                    wc.Offset(0, 1).Font.Color = vbRed
                End If
            Next sh
            srcBook.Close SaveChanges:=False
        End If
    Next m
    Application.ScreenUpdating = True
End Sub
[/vba]

Автор - miver
Дата добавления - 23.10.2015 в 13:42
akaDemik Дата: Пятница, 23.10.2015, 14:09 | Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 67
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010

Да, очень похоже на то что надо, осталось пару вопросов:
1. Если файл Апрель, будет *.xlsx ?
2. По коду я понял что если название листа точно совпадает названию в столбце "A:A", тогда оно добавляется в ячейку В:n, но иногда название листа бывает сокращенным, "1Пон", "1Понед", "1Mond" и т.д.
грубо говоря я знаю что в книгах Январь, Февраль и Март названия листов имеют точное совпадение с текстом в столбце "A:A", но в книге Апрель.xlsx название листа "4Вторн" равно тексту "4Вторник" из столбца "A:A" главной книги; в книге Май.xlsx название листа "5Ср" равно тексту "5 Среда" из столбца "A:A" главной книги...и т.д.
 
Ответить
Сообщение
Да, очень похоже на то что надо, осталось пару вопросов:
1. Если файл Апрель, будет *.xlsx ?
2. По коду я понял что если название листа точно совпадает названию в столбце "A:A", тогда оно добавляется в ячейку В:n, но иногда название листа бывает сокращенным, "1Пон", "1Понед", "1Mond" и т.д.
грубо говоря я знаю что в книгах Январь, Февраль и Март названия листов имеют точное совпадение с текстом в столбце "A:A", но в книге Апрель.xlsx название листа "4Вторн" равно тексту "4Вторник" из столбца "A:A" главной книги; в книге Май.xlsx название листа "5Ср" равно тексту "5 Среда" из столбца "A:A" главной книги...и т.д.

Автор - akaDemik
Дата добавления - 23.10.2015 в 14:09
miver Дата: Пятница, 23.10.2015, 14:39 | Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 37 ±
Замечаний: 0% ±

Excel 2010
akaDemik,
1. Если файл Апрель, будет *.xlsx ?
Можно перебирать все файлы в определённой папке без учета названий
Пункт 2: Перед поиском делай замену названий на один стандартный. Самое простое решение - сделать словарь с синонимами и заменять
"Вт", "Вторн" на "Вторник"


Сообщение отредактировал miver - Пятница, 23.10.2015, 14:41
 
Ответить
СообщениеakaDemik,
1. Если файл Апрель, будет *.xlsx ?
Можно перебирать все файлы в определённой папке без учета названий
Пункт 2: Перед поиском делай замену названий на один стандартный. Самое простое решение - сделать словарь с синонимами и заменять
"Вт", "Вторн" на "Вторник"

Автор - miver
Дата добавления - 23.10.2015 в 14:39
akaDemik Дата: Пятница, 23.10.2015, 15:04 | Сообщение № 11
Группа: Пользователи
Ранг: Участник
Сообщений: 67
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Можно перебирать все файлы в определённой папке без учета названий

В папке могут находится ненужные файлы, которые не должны повлиять на результат основного файла
Перед поиском делай замену названий на один стандартный.

да, это хорошее предложение
[vba]
Код
If sh.CodeName = "4Вторн" Then sh.Name = "4Вторник": Exit For
ElseIf sh.CodeName = "4Втор" Then sh.Name = "4Вторник": Exit For
ElseIf sh.CodeName = "4Вт" Then sh.Name = "4Вторник": Exit For
Next
[/vba]
этого кода будет достаточно?
 
Ответить
Сообщение
Можно перебирать все файлы в определённой папке без учета названий

В папке могут находится ненужные файлы, которые не должны повлиять на результат основного файла
Перед поиском делай замену названий на один стандартный.

да, это хорошее предложение
[vba]
Код
If sh.CodeName = "4Вторн" Then sh.Name = "4Вторник": Exit For
ElseIf sh.CodeName = "4Втор" Then sh.Name = "4Вторник": Exit For
ElseIf sh.CodeName = "4Вт" Then sh.Name = "4Вторник": Exit For
Next
[/vba]
этого кода будет достаточно?

Автор - akaDemik
Дата добавления - 23.10.2015 в 15:04
miver Дата: Пятница, 23.10.2015, 15:16 | Сообщение № 12
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 37 ±
Замечаний: 0% ±

Excel 2010
могут находится ненужные файлы
Я не экстрасенс что б ы понять, каким образом вы различаете: нужные и не нужные
будет *.xlsx ?
Это все файлы ексель

этого кода будет достаточно?
Просто введите переменную (например "sName") и меняйте ее. А когда нужно вместо sh.Name подсовывайте sName
[vba]
Код
sName = sh.Name
Select Case sName
    Case "4Вторн", "4Втор", "4Вт"
        sName = "4Вторник"
End Select
[/vba]


Сообщение отредактировал miver - Пятница, 23.10.2015, 15:32
 
Ответить
Сообщение
могут находится ненужные файлы
Я не экстрасенс что б ы понять, каким образом вы различаете: нужные и не нужные
будет *.xlsx ?
Это все файлы ексель

этого кода будет достаточно?
Просто введите переменную (например "sName") и меняйте ее. А когда нужно вместо sh.Name подсовывайте sName
[vba]
Код
sName = sh.Name
Select Case sName
    Case "4Вторн", "4Втор", "4Вт"
        sName = "4Вторник"
End Select
[/vba]

Автор - miver
Дата добавления - 23.10.2015 в 15:16
akaDemik Дата: Пятница, 23.10.2015, 15:34 | Сообщение № 13
Группа: Пользователи
Ранг: Участник
Сообщений: 67
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Я не экстрасенс что б ы понять каким образом вы разлечаете: нужные и не нужные

в папке может быть файл дубликат или сформированный на основе этого другой файл. Можно конечно скидывать в отдельную папку, но не удобно
Просто введите переменную (например "sName") и меняйте ее

ок, буду пробовать
 
Ответить
Сообщение
Я не экстрасенс что б ы понять каким образом вы разлечаете: нужные и не нужные

в папке может быть файл дубликат или сформированный на основе этого другой файл. Можно конечно скидывать в отдельную папку, но не удобно
Просто введите переменную (например "sName") и меняйте ее

ок, буду пробовать

Автор - akaDemik
Дата добавления - 23.10.2015 в 15:34
akaDemik Дата: Понедельник, 26.10.2015, 18:47 | Сообщение № 14
Группа: Пользователи
Ранг: Участник
Сообщений: 67
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Не получается у меня...
как и писал выше, первая проблема, это с файлом Март.xlsx, пробовал добавить в код *.xlsx, но обработка не проходит...
[vba]
Код
(wb.Path & "\" & m & ".xls" & ".xlsx")
[/vba]
вторая проблема, это с переименованием листов, выбивает ошибку
а третья проблема, то что я и опасался с самого начала, у большинства файлов одинаковая структура, но есть файлы, у который нужные данные находятся на одном листе (Апрель.xls)
К сообщению приложен файл: Friday.zip (34.8 Kb)
 
Ответить
СообщениеНе получается у меня...
как и писал выше, первая проблема, это с файлом Март.xlsx, пробовал добавить в код *.xlsx, но обработка не проходит...
[vba]
Код
(wb.Path & "\" & m & ".xls" & ".xlsx")
[/vba]
вторая проблема, это с переименованием листов, выбивает ошибку
а третья проблема, то что я и опасался с самого начала, у большинства файлов одинаковая структура, но есть файлы, у который нужные данные находятся на одном листе (Апрель.xls)

Автор - akaDemik
Дата добавления - 26.10.2015 в 18:47
Lyfan Дата: Среда, 28.10.2015, 09:12 | Сообщение № 15
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Как вариант - wb.Path & "\" & m & "*.xls*"
 
Ответить
СообщениеКак вариант - wb.Path & "\" & m & "*.xls*"

Автор - Lyfan
Дата добавления - 28.10.2015 в 09:12
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск по заданному тексту в массиве (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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