Есть файл «списание» и есть макрос, но макрос сделан к другому файлу ЮЛ! Как можно переделать макрос, чтобы он искал строчки в файле «списание» со словами «беспроц», «безпроц», «б/процен» (условие выполняется неодновременно, а так чтобы хотя бы одно из слов встречалось в строчке) и найденную строчку полностью со столбца J переносил на лист 2 файла «списание»!
Есть файл «списание» и есть макрос, но макрос сделан к другому файлу ЮЛ! Как можно переделать макрос, чтобы он искал строчки в файле «списание» со словами «беспроц», «безпроц», «б/процен» (условие выполняется неодновременно, а так чтобы хотя бы одно из слов встречалось в строчке) и найденную строчку полностью со столбца J переносил на лист 2 файла «списание»!NICK31
[code]Sub КОПИРОВАТЬ() iPath$ = ActiveWorkbook.Path & "\" iFile$ = Dir(iPath$ & "списание.xl?") iList$ = "Лист1" If iFile$ = "" Then MsgBox " Не найден файл списание.xl?! ПРОЦЕДУРА ПРЕРВАНА " Exit Sub End If Dim OTKUDA As Range, PS, I Dim KUDA As Range, sz Application.ScreenUpdating = False IName = "списание.xl?" iMacroFunction = "DOCUMENTS(3,""" & IName & """)" iWorkbookName = ExecuteExcel4Macro(iMacroFunction) If Not IsError(iWorkbookName) Then 'MsgBox "Рабочая книга открыта" Windows(iWorkbookName).Activate Else 'MsgBox "Рабочая книга закрыта" Workbooks.Open Filename:=iPath$ & iFile$ End If PS = Sheets("Лист2").Range("J" & Rows.Count).End(xlUp).Row + 5 Sheets("Лист2").Range("J2:AB" & PS).ClearContents Sheets("Лист1").Select PS = Range("J" & Rows.Count).End(xlUp).Row sz = 1 For I = 5 To PS ww = Val(Replace(Cells(I, 17), ChrW(160), "")) If Cells(I, 4) Like "*беспроц*" Or Cells(I, 4) Like "*безпроц*" Or Cells(I, 4) Like "*б/процен*" Then Set OTKUDA = Range("J" & I & ": AB" & I) Set KUDA = Sheets("Лист2").Range("A" & sz & ": W" & sz) OTKUDA.Copy KUDA sz = sz + 1 End If Next I Application.ScreenUpdating = True Sheets("Лист2").Select End Sub не получается
[code]Sub КОПИРОВАТЬ() iPath$ = ActiveWorkbook.Path & "\" iFile$ = Dir(iPath$ & "списание.xl?") iList$ = "Лист1" If iFile$ = "" Then MsgBox " Не найден файл списание.xl?! ПРОЦЕДУРА ПРЕРВАНА " Exit Sub End If Dim OTKUDA As Range, PS, I Dim KUDA As Range, sz Application.ScreenUpdating = False IName = "списание.xl?" iMacroFunction = "DOCUMENTS(3,""" & IName & """)" iWorkbookName = ExecuteExcel4Macro(iMacroFunction) If Not IsError(iWorkbookName) Then 'MsgBox "Рабочая книга открыта" Windows(iWorkbookName).Activate Else 'MsgBox "Рабочая книга закрыта" Workbooks.Open Filename:=iPath$ & iFile$ End If PS = Sheets("Лист2").Range("J" & Rows.Count).End(xlUp).Row + 5 Sheets("Лист2").Range("J2:AB" & PS).ClearContents Sheets("Лист1").Select PS = Range("J" & Rows.Count).End(xlUp).Row sz = 1 For I = 5 To PS ww = Val(Replace(Cells(I, 17), ChrW(160), "")) If Cells(I, 4) Like "*беспроц*" Or Cells(I, 4) Like "*безпроц*" Or Cells(I, 4) Like "*б/процен*" Then Set OTKUDA = Range("J" & I & ": AB" & I) Set KUDA = Sheets("Лист2").Range("A" & sz & ": W" & sz) OTKUDA.Copy KUDA sz = sz + 1 End If Next I Application.ScreenUpdating = True Sheets("Лист2").Select End Sub не получаетсяNICK31
изменил параметры поиска строки, но там при запуске почему то названия столбцов только копирует, хотя мне они вообще не нужны...нужны уже готовые строчки без названия столбцов
изменил параметры поиска строки, но там при запуске почему то названия столбцов только копирует, хотя мне они вообще не нужны...нужны уже готовые строчки без названия столбцовNICK31
А, теперь понял. Тада так (не переделывая макрос, а просто меняя в нем названия и ссылки) [vba]
Code
Sub КОПИРОВАТЬ() iPath$ = ActiveWorkbook.Path & "\" iFile$ = Dir(iPath$ & "списание.xl?") iList$ = "Лист1" If iFile$ = "" Then MsgBox " Не найден файл списание.xl?! ПРОЦЕДУРА ПРЕРВАНА " Exit Sub End If Dim OTKUDA As Range, PS, I Dim KUDA As Range, sz Application.ScreenUpdating = False IName = "списание.xl?" iMacroFunction = "DOCUMENTS(3,""" & IName & """)" iWorkbookName = ExecuteExcel4Macro(iMacroFunction) If Not IsError(iWorkbookName) Then 'MsgBox "Рабочая книга открыта" Windows(iWorkbookName).Activate Else 'MsgBox "Рабочая книга закрыта" Workbooks.Open Filename:=iPath$ & iFile$ End If PS = Sheets("Лист2").Range("J" & Rows.Count).End(xlUp).Row + 5 Sheets("Лист2").Range("A5:AP" & PS).ClearContents Sheets("Лист1").Select PS = Range("J" & Rows.Count).End(xlUp).Row sz = 1 For I = 5 To PS ww = Val(Replace(Cells(I, 17), ChrW(160), "")) If Cells(I, 10) Like "*беспроц*" Or Cells(I, 4) Like "*безпроц*" Or Cells(I, 4) Like "*б/процен*" Then Set OTKUDA = Range("A" & I & ": AP" & I) Set KUDA = Sheets("Лист2").Range("A" & sz & ": AP" & sz) OTKUDA.Copy KUDA sz = sz + 1 End If Next I Application.ScreenUpdating = True Sheets("Лист2").Select End Sub
[/vba]
А, теперь понял. Тада так (не переделывая макрос, а просто меняя в нем названия и ссылки) [vba]
Code
Sub КОПИРОВАТЬ() iPath$ = ActiveWorkbook.Path & "\" iFile$ = Dir(iPath$ & "списание.xl?") iList$ = "Лист1" If iFile$ = "" Then MsgBox " Не найден файл списание.xl?! ПРОЦЕДУРА ПРЕРВАНА " Exit Sub End If Dim OTKUDA As Range, PS, I Dim KUDA As Range, sz Application.ScreenUpdating = False IName = "списание.xl?" iMacroFunction = "DOCUMENTS(3,""" & IName & """)" iWorkbookName = ExecuteExcel4Macro(iMacroFunction) If Not IsError(iWorkbookName) Then 'MsgBox "Рабочая книга открыта" Windows(iWorkbookName).Activate Else 'MsgBox "Рабочая книга закрыта" Workbooks.Open Filename:=iPath$ & iFile$ End If PS = Sheets("Лист2").Range("J" & Rows.Count).End(xlUp).Row + 5 Sheets("Лист2").Range("A5:AP" & PS).ClearContents Sheets("Лист1").Select PS = Range("J" & Rows.Count).End(xlUp).Row sz = 1 For I = 5 To PS ww = Val(Replace(Cells(I, 17), ChrW(160), "")) If Cells(I, 10) Like "*беспроц*" Or Cells(I, 4) Like "*безпроц*" Or Cells(I, 4) Like "*б/процен*" Then Set OTKUDA = Range("A" & I & ": AP" & I) Set KUDA = Sheets("Лист2").Range("A" & sz & ": AP" & sz) OTKUDA.Copy KUDA sz = sz + 1 End If Next I Application.ScreenUpdating = True Sheets("Лист2").Select End Sub