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

Страницы: 1 2 3 След.
Прекращение работы Excel при выполнении макроса (закрывается текущая книга и открывается пустая)
 
Nordheim, задача в консолидации. Проблема, как оказалось в сети рабочей: старый аналогичный макрос отрабатывал месяц назад хорошо, сейчас закрывалась книга. Скопировал все необходимые файлы на рабочий стол - отработался и новый, и старый макрос. Попробовал еще раз с сети сконсолидировать, но в коде прописал задержку по времени (3 сек) перед закрытием книги в цикле - все тоже отработалось, но было по времени немного долго.
В итоге, перед закрытием добавил информационное сообщение, которое в итоге проблему и решило.

Спасибо большое за помощь!
Прекращение работы Excel при выполнении макроса (закрывается текущая книга и открывается пустая)
 
Nordheim,
Учел все замечания по коду. Однако, к сожалению, проблема все еще есть. Все так же при выполнении макроса прекращается работа Excel и открывается пустая книга  :(
По добавил только
Код
set sht1 = book.Worksheets(sht.Name)
Вместо. Ибо выскакивала ошибка.
Код
sht1 = book.Worksheets(sht.Name)
Прекращение работы Excel при выполнении макроса (закрывается текущая книга и открывается пустая)
 
Nordheim,
Спасибо большое! На самом деле заставили задуматься меня пересмотреть кардинально подход к написанию кода.
Очень Вам благодарен.
Прекращение работы Excel при выполнении макроса (закрывается текущая книга и открывается пустая)
 
Nordheim,
Я согласен, код не оптимален. Вы считаете, проблема в этом? Если код такой будет, проще проблему будет найти?:
Код
Sub BG_pol()
    Dim iBeginRange As Object, lCalc As Long, lCol As Long
    Dim oAwb As String, sCopyAddress As String, sSheetName As String
    Dim lLastrow As Long, lLastRowMyBook As Long, li As Long, iLastColumn As Integer
    Dim wsSh As Object, wsDataSheet As Object, bPolyBooks As Boolean, avFiles
    Dim wbAct As Workbook
    Dim bPasteValues As Boolean
      
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
  
    name_conso = ThisWorkbook.Name
      
    Workbooks(name_conso).Sheets("БГ_получ_(в_пользу_группы)").Rows(5).ClearContents
    Workbooks(name_conso).Sheets("БГ_получ_(в_пользу_группы)").Rows(6).Resize(1000).Delete
  
    sSheetName = "БГ_получ_(в_пользу_группы)"
    If sSheetName = "" Then sSheetName = "*"
    On Error GoTo 0
    bPasteValues = (MsgBox("Вставлять только значения?", vbQuestion + vbYesNo, "Excel-VBA") = vbYes)
    If MsgBox("Собрать данные с нескольких книг?", vbInformation + vbYesNo, "Excel-VBA") = vbYes Then
        avFiles = Application.GetOpenFilename("Excel files(*.xls*),*.xls*", , "Выбор файлов", , True)
        If VarType(avFiles) = vbBoolean Then Exit Sub
        bPolyBooks = True
        lCol = 1
    Else
        avFiles = Array(ThisWorkbook.FullName)
    End If
      
      
    'Копирование нужных значений
    For li = LBound(avFiles) To UBound(avFiles)
        If bPolyBooks Then
            Set wbAct = Workbooks.Open(Filename:=avFiles(li))
            Bookopenname = ActiveWorkbook.Name
        Else
            Set wbAct = ThisWorkbook
        End If
          
        lLastrowBG_pol1 = Workbooks(Bookopenname).Sheets("БГ_получ_(в_пользу_группы)").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(Bookopenname).Sheets("БГ_получ_(в_пользу_группы)").Range(Workbooks(Bookopenname).Sheets("БГ_получ_(в_пользу_группы)").Cells(5, 2), Workbooks(Bookopenname).Sheets("БГ_получ_(в_пользу_группы)").Cells(lLastrowBG_pol1, 20)).Copy
        lLastrowBG_pol2 = Workbooks(name_conso).Sheets("БГ_получ_(в_пользу_группы)").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(name_conso).Sheets("БГ_получ_(в_пользу_группы)").Cells(lLastrowBG_pol2, 2).PasteSpecial Paste:=xlPasteValues
        Workbooks(name_conso).Sheets("БГ_получ_(в_пользу_группы)").Rows(5).Copy
        lLastrowBG_pol3 = Workbooks(name_conso).Sheets("БГ_получ_(в_пользу_группы)").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(name_conso).Sheets("БГ_получ_(в_пользу_группы)").Rows(6).Resize(lLastrowBG_pol3).PasteSpecial Paste:=xlPasteFormats
  
        If bPolyBooks Then wbAct.Close False
    Next li
      
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
  
End Sub
Изменено: vadik-ceo - 05.07.2018 13:13:08
Прекращение работы Excel при выполнении макроса (закрывается текущая книга и открывается пустая)
 
sokol92,
Я так понимаю, не совсем четко проблема разъяснена?
Постарался максимально кратко и емко. Файл в целом можно даже не открывать, загрузил исключительно из предыдущего опыта (требуют модераторы форума).
Проблема еще раз: запускаю макрос - закрывается книга (прекращается работа). Что в коде не так, подскажите пожалуйста, если Ваш опыт это позволяет сделать.
Прекращение работы Excel при выполнении макроса (закрывается текущая книга и открывается пустая)
 
Ребят, добрый день.
Выполняю макрос -> прекращается работа в экселе -> открывается новая пустая книга. Подскажите почему и как исправить, пожалуйста.
Код
Sub BG_pol()
    Dim iBeginRange As Object, lCalc As Long, lCol As Long
    Dim oAwb As String, sCopyAddress As String, sSheetName As String
    Dim lLastrow As Long, lLastRowMyBook As Long, li As Long, iLastColumn As Integer
    Dim wsSh As Object, wsDataSheet As Object, bPolyBooks As Boolean, avFiles
    Dim wbAct As Workbook
    Dim bPasteValues As Boolean
     
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
 
    name_conso = ThisWorkbook.Name
     
    Workbooks(name_conso).Sheets("БГ_получ_(в_пользу_группы)").Rows(5).ClearContents
    Workbooks(name_conso).Sheets("БГ_получ_(в_пользу_группы)").Rows(6).Resize(1000).Delete
         
    Workbooks(name_conso).Sheets("БГ_выдан_(в_пользу_3их_лиц)").Rows(7).ClearContents
    Workbooks(name_conso).Sheets("БГ_выдан_(в_пользу_3их_лиц)").Rows(8).Resize(1000).Delete
     
    Workbooks(name_conso).Sheets("Поручительства_выданные").Rows(7).ClearContents
    Workbooks(name_conso).Sheets("Поручительства_выданные").Rows(8).Resize(1000).Delete
     
    Workbooks(name_conso).Sheets("Поручительства_полученные").Rows(8).ClearContents
    Workbooks(name_conso).Sheets("Поручительства_полученные").Rows(9).Resize(1000).Delete
     
    Workbooks(name_conso).Sheets("Прочие_обязательства").Rows(7).ClearContents
    Workbooks(name_conso).Sheets("Прочие_обязательства").Rows(8).Resize(1000).Delete
     
    Workbooks(name_conso).Sheets("Аккредитивы").Rows(7).ClearContents
    Workbooks(name_conso).Sheets("Аккредитивы").Rows(8).Resize(1000).Delete
 
    sSheetName = "БГ_получ_(в_пользу_группы)"
    If sSheetName = "" Then sSheetName = "*"
    On Error GoTo 0
    bPasteValues = (MsgBox("Вставлять только значения?", vbQuestion + vbYesNo, "Excel-VBA") = vbYes)
    If MsgBox("Собрать данные с нескольких книг?", vbInformation + vbYesNo, "Excel-VBA") = vbYes Then
        avFiles = Application.GetOpenFilename("Excel files(*.xls*),*.xls*", , "Выбор файлов", , True)
        If VarType(avFiles) = vbBoolean Then Exit Sub
        bPolyBooks = True
        lCol = 1
    Else
        avFiles = Array(ThisWorkbook.FullName)
    End If
     
     
    'Копирование нужных значений
    For li = LBound(avFiles) To UBound(avFiles)
        If bPolyBooks Then
            Set wbAct = Workbooks.Open(Filename:=avFiles(li))
            Bookopenname = ActiveWorkbook.Name
        Else
            Set wbAct = ThisWorkbook
        End If
         
        lLastrowBG_pol1 = Workbooks(Bookopenname).Sheets("БГ_получ_(в_пользу_группы)").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(Bookopenname).Sheets("БГ_получ_(в_пользу_группы)").Range(Workbooks(Bookopenname).Sheets("БГ_получ_(в_пользу_группы)").Cells(5, 2), Workbooks(Bookopenname).Sheets("БГ_получ_(в_пользу_группы)").Cells(lLastrowBG_pol1, 20)).Copy
        lLastrowBG_pol2 = Workbooks(name_conso).Sheets("БГ_получ_(в_пользу_группы)").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(name_conso).Sheets("БГ_получ_(в_пользу_группы)").Cells(lLastrowBG_pol2, 2).PasteSpecial Paste:=xlPasteValues
        Workbooks(name_conso).Sheets("БГ_получ_(в_пользу_группы)").Rows(5).Copy
        lLastrowBG_pol3 = Workbooks(name_conso).Sheets("БГ_получ_(в_пользу_группы)").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(name_conso).Sheets("БГ_получ_(в_пользу_группы)").Rows(6).Resize(lLastrowBG_pol3).PasteSpecial Paste:=xlPasteFormats
         
        lLastrowBG_pol4 = Workbooks(Bookopenname).Sheets("БГ_выдан_(в_пользу_3их_лиц)").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(Bookopenname).Sheets("БГ_выдан_(в_пользу_3их_лиц)").Range(Workbooks(Bookopenname).Sheets("БГ_выдан_(в_пользу_3их_лиц)").Cells(7, 2), Workbooks(Bookopenname).Sheets("БГ_выдан_(в_пользу_3их_лиц)").Cells(lLastrowBG_pol4, 21)).Copy
        lLastrowBG_pol5 = Workbooks(name_conso).Sheets("БГ_выдан_(в_пользу_3их_лиц)").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(name_conso).Sheets("БГ_выдан_(в_пользу_3их_лиц)").Cells(lLastrowBG_pol5, 2).PasteSpecial Paste:=xlPasteValues
        Workbooks(name_conso).Sheets("БГ_выдан_(в_пользу_3их_лиц)").Rows(7).Copy
        lLastrowBG_pol6 = Workbooks(name_conso).Sheets("БГ_выдан_(в_пользу_3их_лиц)").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(name_conso).Sheets("БГ_выдан_(в_пользу_3их_лиц)").Rows(8).Resize(lLastrowBG_pol6).PasteSpecial Paste:=xlPasteFormats
         
        lLastrowBG_pol7 = Workbooks(Bookopenname).Sheets("Поручительства_выданные").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(Bookopenname).Sheets("Поручительства_выданные").Range(Workbooks(Bookopenname).Sheets("Поручительства_выданные").Cells(7, 2), Workbooks(Bookopenname).Sheets("Поручительства_выданные").Cells(lLastrowBG_pol7, 23)).Copy
        lLastrowBG_pol8 = Workbooks(name_conso).Sheets("Поручительства_выданные").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(name_conso).Sheets("Поручительства_выданные").Cells(lLastrowBG_pol8, 2).PasteSpecial Paste:=xlPasteValues
        Workbooks(name_conso).Sheets("Поручительства_выданные").Rows(7).Copy
        lLastrowBG_pol9 = Workbooks(name_conso).Sheets("Поручительства_выданные").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(name_conso).Sheets("Поручительства_выданные").Rows(8).Resize(lLastrowBG_pol9).PasteSpecial Paste:=xlPasteFormats
 
        lLastrowBG_pol10 = Workbooks(Bookopenname).Sheets("Поручительства_полученные").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(Bookopenname).Sheets("Поручительства_полученные").Range(Workbooks(Bookopenname).Sheets("Поручительства_полученные").Cells(8, 2), Workbooks(Bookopenname).Sheets("Поручительства_полученные").Cells(lLastrowBG_pol10, 23)).Copy
        lLastrowBG_pol11 = Workbooks(name_conso).Sheets("Поручительства_полученные").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(name_conso).Sheets("Поручительства_полученные").Cells(lLastrowBG_pol11, 2).PasteSpecial Paste:=xlPasteValues
        Workbooks(name_conso).Sheets("Поручительства_полученные").Rows(8).Copy
        lLastrowBG_pol12 = Workbooks(name_conso).Sheets("Поручительства_полученные").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(name_conso).Sheets("Поручительства_полученные").Rows(9).Resize(lLastrowBG_pol12).PasteSpecial Paste:=xlPasteFormats
         
        lLastrowBG_pol13 = Workbooks(Bookopenname).Sheets("Прочие_обязательства").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(Bookopenname).Sheets("Прочие_обязательства").Range(Workbooks(Bookopenname).Sheets("Прочие_обязательства").Cells(7, 2), Workbooks(Bookopenname).Sheets("Прочие_обязательства").Cells(lLastrowBG_pol13, 22)).Copy
        lLastrowBG_pol14 = Workbooks(name_conso).Sheets("Прочие_обязательства").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(name_conso).Sheets("Прочие_обязательства").Cells(lLastrowBG_pol14, 2).PasteSpecial Paste:=xlPasteValues
        Workbooks(name_conso).Sheets("Прочие_обязательства").Rows(7).Copy
        lLastrowBG_pol15 = Workbooks(name_conso).Sheets("Прочие_обязательства").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(name_conso).Sheets("Прочие_обязательства").Rows(8).Resize(lLastrowBG_pol15).PasteSpecial Paste:=xlPasteFormats
         
        lLastrowBG_pol13 = Workbooks(Bookopenname).Sheets("Аккредитивы").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(Bookopenname).Sheets("Аккредитивы").Range(Workbooks(Bookopenname).Sheets("Аккредитивы").Cells(7, 2), Workbooks(Bookopenname).Sheets("Аккредитивы").Cells(lLastrowBG_pol13, 22)).Copy
        lLastrowBG_pol14 = Workbooks(name_conso).Sheets("Аккредитивы").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(name_conso).Sheets("Аккредитивы").Cells(lLastrowBG_pol14, 2).PasteSpecial Paste:=xlPasteValues
        Workbooks(name_conso).Sheets("Аккредитивы").Rows(7).Copy
        lLastrowBG_pol15 = Workbooks(name_conso).Sheets("Аккредитивы").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(name_conso).Sheets("Аккредитивы").Rows(8).Resize(lLastrowBG_pol15).PasteSpecial Paste:=xlPasteFormats
 
        If bPolyBooks Then wbAct.Close False
    Next li
     
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
 
End Sub
[ Закрыто] Ошибка при выполнении макроса, Прекращение работы Excel при выполнении макроса
 
Ребят, добрый день.
Выполняю макрос -> прекращается работа в экселе -> открывается новая пустая книга. Подскажите почему и как исправить, пожалуйста.
Код ниже:
Код
Sub BG_pol()
    Dim iBeginRange As Object, lCalc As Long, lCol As Long
    Dim oAwb As String, sCopyAddress As String, sSheetName As String
    Dim lLastrow As Long, lLastRowMyBook As Long, li As Long, iLastColumn As Integer
    Dim wsSh As Object, wsDataSheet As Object, bPolyBooks As Boolean, avFiles
    Dim wbAct As Workbook
    Dim bPasteValues As Boolean
    
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlManual

    name_conso = ThisWorkbook.Name
    
    Workbooks(name_conso).Sheets("БГ_получ_(в_пользу_группы)").Rows(5).ClearContents
    Workbooks(name_conso).Sheets("БГ_получ_(в_пользу_группы)").Rows(6).Resize(1000).Delete
        
    Workbooks(name_conso).Sheets("БГ_выдан_(в_пользу_3их_лиц)").Rows(7).ClearContents
    Workbooks(name_conso).Sheets("БГ_выдан_(в_пользу_3их_лиц)").Rows(8).Resize(1000).Delete
    
    Workbooks(name_conso).Sheets("Поручительства_выданные").Rows(7).ClearContents
    Workbooks(name_conso).Sheets("Поручительства_выданные").Rows(8).Resize(1000).Delete
    
    Workbooks(name_conso).Sheets("Поручительства_полученные").Rows(8).ClearContents
    Workbooks(name_conso).Sheets("Поручительства_полученные").Rows(9).Resize(1000).Delete
    
    Workbooks(name_conso).Sheets("Прочие_обязательства").Rows(7).ClearContents
    Workbooks(name_conso).Sheets("Прочие_обязательства").Rows(8).Resize(1000).Delete
    
    Workbooks(name_conso).Sheets("Аккредитивы").Rows(7).ClearContents
    Workbooks(name_conso).Sheets("Аккредитивы").Rows(8).Resize(1000).Delete

    sSheetName = "БГ_получ_(в_пользу_группы)"
    If sSheetName = "" Then sSheetName = "*"
    On Error GoTo 0
    bPasteValues = (MsgBox("Вставлять только значения?", vbQuestion + vbYesNo, "Excel-VBA") = vbYes)
    If MsgBox("Собрать данные с нескольких книг?", vbInformation + vbYesNo, "Excel-VBA") = vbYes Then
        avFiles = Application.GetOpenFilename("Excel files(*.xls*),*.xls*", , "Выбор файлов", , True)
        If VarType(avFiles) = vbBoolean Then Exit Sub
        bPolyBooks = True
        lCol = 1
    Else
        avFiles = Array(ThisWorkbook.FullName)
    End If
    
    
    'Копирование нужных значений
    For li = LBound(avFiles) To UBound(avFiles)
        If bPolyBooks Then
            Set wbAct = Workbooks.Open(Filename:=avFiles(li))
            Bookopenname = ActiveWorkbook.Name
        Else
            Set wbAct = ThisWorkbook
        End If
        
        lLastrowBG_pol1 = Workbooks(Bookopenname).Sheets("БГ_получ_(в_пользу_группы)").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(Bookopenname).Sheets("БГ_получ_(в_пользу_группы)").Range(Workbooks(Bookopenname).Sheets("БГ_получ_(в_пользу_группы)").Cells(5, 2), Workbooks(Bookopenname).Sheets("БГ_получ_(в_пользу_группы)").Cells(lLastrowBG_pol1, 20)).Copy
        lLastrowBG_pol2 = Workbooks(name_conso).Sheets("БГ_получ_(в_пользу_группы)").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(name_conso).Sheets("БГ_получ_(в_пользу_группы)").Cells(lLastrowBG_pol2, 2).PasteSpecial Paste:=xlPasteValues
        Workbooks(name_conso).Sheets("БГ_получ_(в_пользу_группы)").Rows(5).Copy
        lLastrowBG_pol3 = Workbooks(name_conso).Sheets("БГ_получ_(в_пользу_группы)").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(name_conso).Sheets("БГ_получ_(в_пользу_группы)").Rows(6).Resize(lLastrowBG_pol3).PasteSpecial Paste:=xlPasteFormats
        
        lLastrowBG_pol4 = Workbooks(Bookopenname).Sheets("БГ_выдан_(в_пользу_3их_лиц)").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(Bookopenname).Sheets("БГ_выдан_(в_пользу_3их_лиц)").Range(Workbooks(Bookopenname).Sheets("БГ_выдан_(в_пользу_3их_лиц)").Cells(7, 2), Workbooks(Bookopenname).Sheets("БГ_выдан_(в_пользу_3их_лиц)").Cells(lLastrowBG_pol4, 21)).Copy
        lLastrowBG_pol5 = Workbooks(name_conso).Sheets("БГ_выдан_(в_пользу_3их_лиц)").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(name_conso).Sheets("БГ_выдан_(в_пользу_3их_лиц)").Cells(lLastrowBG_pol5, 2).PasteSpecial Paste:=xlPasteValues
        Workbooks(name_conso).Sheets("БГ_выдан_(в_пользу_3их_лиц)").Rows(7).Copy
        lLastrowBG_pol6 = Workbooks(name_conso).Sheets("БГ_выдан_(в_пользу_3их_лиц)").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(name_conso).Sheets("БГ_выдан_(в_пользу_3их_лиц)").Rows(8).Resize(lLastrowBG_pol6).PasteSpecial Paste:=xlPasteFormats
        
        lLastrowBG_pol7 = Workbooks(Bookopenname).Sheets("Поручительства_выданные").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(Bookopenname).Sheets("Поручительства_выданные").Range(Workbooks(Bookopenname).Sheets("Поручительства_выданные").Cells(7, 2), Workbooks(Bookopenname).Sheets("Поручительства_выданные").Cells(lLastrowBG_pol7, 23)).Copy
        lLastrowBG_pol8 = Workbooks(name_conso).Sheets("Поручительства_выданные").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(name_conso).Sheets("Поручительства_выданные").Cells(lLastrowBG_pol8, 2).PasteSpecial Paste:=xlPasteValues
        Workbooks(name_conso).Sheets("Поручительства_выданные").Rows(7).Copy
        lLastrowBG_pol9 = Workbooks(name_conso).Sheets("Поручительства_выданные").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(name_conso).Sheets("Поручительства_выданные").Rows(8).Resize(lLastrowBG_pol9).PasteSpecial Paste:=xlPasteFormats

        lLastrowBG_pol10 = Workbooks(Bookopenname).Sheets("Поручительства_полученные").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(Bookopenname).Sheets("Поручительства_полученные").Range(Workbooks(Bookopenname).Sheets("Поручительства_полученные").Cells(8, 2), Workbooks(Bookopenname).Sheets("Поручительства_полученные").Cells(lLastrowBG_pol10, 23)).Copy
        lLastrowBG_pol11 = Workbooks(name_conso).Sheets("Поручительства_полученные").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(name_conso).Sheets("Поручительства_полученные").Cells(lLastrowBG_pol11, 2).PasteSpecial Paste:=xlPasteValues
        Workbooks(name_conso).Sheets("Поручительства_полученные").Rows(8).Copy
        lLastrowBG_pol12 = Workbooks(name_conso).Sheets("Поручительства_полученные").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(name_conso).Sheets("Поручительства_полученные").Rows(9).Resize(lLastrowBG_pol12).PasteSpecial Paste:=xlPasteFormats
        
        lLastrowBG_pol13 = Workbooks(Bookopenname).Sheets("Прочие_обязательства").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(Bookopenname).Sheets("Прочие_обязательства").Range(Workbooks(Bookopenname).Sheets("Прочие_обязательства").Cells(7, 2), Workbooks(Bookopenname).Sheets("Прочие_обязательства").Cells(lLastrowBG_pol13, 22)).Copy
        lLastrowBG_pol14 = Workbooks(name_conso).Sheets("Прочие_обязательства").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(name_conso).Sheets("Прочие_обязательства").Cells(lLastrowBG_pol14, 2).PasteSpecial Paste:=xlPasteValues
        Workbooks(name_conso).Sheets("Прочие_обязательства").Rows(7).Copy
        lLastrowBG_pol15 = Workbooks(name_conso).Sheets("Прочие_обязательства").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(name_conso).Sheets("Прочие_обязательства").Rows(8).Resize(lLastrowBG_pol15).PasteSpecial Paste:=xlPasteFormats
        
        lLastrowBG_pol13 = Workbooks(Bookopenname).Sheets("Аккредитивы").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(Bookopenname).Sheets("Аккредитивы").Range(Workbooks(Bookopenname).Sheets("Аккредитивы").Cells(7, 2), Workbooks(Bookopenname).Sheets("Аккредитивы").Cells(lLastrowBG_pol13, 22)).Copy
        lLastrowBG_pol14 = Workbooks(name_conso).Sheets("Аккредитивы").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(name_conso).Sheets("Аккредитивы").Cells(lLastrowBG_pol14, 2).PasteSpecial Paste:=xlPasteValues
        Workbooks(name_conso).Sheets("Аккредитивы").Rows(7).Copy
        lLastrowBG_pol15 = Workbooks(name_conso).Sheets("Аккредитивы").Cells(Rows.Count, 2).End(xlUp).Row + 1
        Workbooks(name_conso).Sheets("Аккредитивы").Rows(8).Resize(lLastrowBG_pol15).PasteSpecial Paste:=xlPasteFormats

        If bPolyBooks Then wbAct.Close False
    Next li
    
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.Calculation = xlAutomatic

End Sub
ВПР vs Индекс(поискпоз) - что легче?
 
Всем добрый день. Наверняка уже освещался вопрос по поводу того, что из предложенных формул является легче: впр или индекспоискпоз. Подкиньте пожалуйста статей или просто поясните, что оптимальнее использовать при больших выборках
Спасибо!
Автоматическое "Включить содержимое"
 
Разрешил проблему, всем спасибо.
Изменено: vadik-ceo - 26.04.2018 17:25:22
Автоматическое "Включить содержимое"
 
Коллеги, всем доброго вечера.
Прошу помощи для того, чтобы при открытии книги не приходилось нажимать вверху листа "Включить содержимое". Как прописать это кодом, чтобы прожималось автоматически?
Спасибо!
Изменено: vadik-ceo - 26.04.2018 17:17:51
Блокировка выделения нескольких ячеек
 
Коллеги, добрый день.
Предыстория: лист заблочен, разрешен ввод на некоторые лишь диапазоны ячеек. Выделить заблокированные нельзя.
Хочу, чтобы пользователи не могли выделять на листе более одной ячейки. Подскажите, пожалуйста, как прописать запрет на выделение нескольких ячеек?
Есть у меня следующий код, но, к сожалению, не пашет.
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then
   MsgBox "Угроза похищения данных! Срочно отключите устройство от сети!"
Else
...
End if
Изменено: vadik-ceo - 20.04.2018 12:24:02
Ошибка при обращении к диапазону "application defined or object defined error"
 
Дмитрий Щербаков, понял Вас, действительно, что-то даже не подумал ячейки явно объявить, глупая ошибка)
Касательно темы, в следующий раз постараюсь исправиться=)
Спасибо!
Ошибка при обращении к диапазону "application defined or object defined error"
 
Коллеги, добрый день.
Подскажите, пожалуйста, в чем ошибка по 5 строке?
Точнее, даже знаю, что проблема в Cells(j,2) - вставил просто ячейку (А5), все ок. Но нужен именно диапазон из серии ((Cells(j, 6), Cells(j, 13)).
В противном случае, прошу помочь правильно объявить диапазон.
Спасибо!
Код
a = 6
j = 17
lLastrow3 = Sheets("Лист").Cells(Rows.Count, 5).End(xlUp).Row
FName = Sheets("SETT").Cells(a, 4).Value
Workbooks(FName).Sheets("1").Range((Cells(j, 6), Cells(j, 13)).Copy Destination:=Workbooks("Книга.xlsm").Sheets("Лист").Cells(lLastrow3 + 1, 5) 'ошибка
Изменено: vadik-ceo - 11.04.2018 13:12:42
Код под выделение и вставку строки
 
Ребята, есть следующий вопрос: нужно выделить, предположим три ячейки в столбце "А", стоящие ниже заданной (пусть А1), вырезать их (или копировать) и вставить в столбец "B" (начальная ячейка B1). Можно ли как-то избежать следующей большой конструкции:
Код
Range("A2:A4").Select
Selection.Copy
Range("B1").Paste
И заменить на одну строку кода?
Процедура, вроде как должна быть понятна, файл не прилагаю.
Спасибо.
VBA: как вызвать ячейку с номером ряда Nothing
 
Irregular Expression,
Обязательно сейчас прочитаю и постараюсь понять. Спасибо Вам огромное!
VBA: как вызвать ячейку с номером ряда Nothing
 
Цитата
Ігор Гончаренко написал:
ответ:нет в Excel способа обратиться к ячейке находящейся в ряду Nothing. нет ряда - нет ячеек в нем.и тему на этом можно закрыть. готовьте след., волнующий Вас вопрос.
Я ведь и не говорю, что код идеален, понимаю, что есть много недоработок и прочего. Затем и обратился сюда за помощью. Понимаю, что код должен учитывать все. Но еще раз повторюсь, я не владею advanced навыками в VBA и только учусь, поэтому нуждаюсь в помощи.
VBA: как вызвать ячейку с номером ряда Nothing
 
А такое вообще возможно (это просто немного за гранью моего понимания). Моя логика прямолинейна - запускаем макрос один раз, нашел, ок. Второй раз, это новая процедура (типа абсолютно такая же как первая). Причем ведь тут проблема какая - если вставить два "янв" и "факт" в начало диапазона двумя первыми строками, то он ругается. А если в середине где-нибудь, то работает без ошибок постоянно.
VBA: как вызвать ячейку с номером ряда Nothing
 
Цитата
Ігор Гончаренко написал:
Цитата vadik-ceo  написал:Подскажитеисправлейте пока не начнет работать как нужно.как только начало работать как нужно - больше ничего не исправляйте
Так а что исправить?)))
VBA: как вызвать ячейку с номером ряда Nothing
 
Irregular Expression,
Не пойму все же, почему в первый раз он находит "Текущие заявки", во второй раз нет... Он ведь на листе и остается.
С какой стороны тогда лучше зайти? Как исправить мне или переписать? Подскажите пожалуйста..
VBA: как вызвать ячейку с номером ряда Nothing
 
Irregular Expression,
Вставил меседж, отработал, показал строки. Поменял месяц на "янв" и на "факт", как писал выше, выдает следующую ошибку (на картинке).
Выделяет строку
Код
Set zx = Range("B:B").Find("Текущие заявки")
VBA: как вызвать ячейку с номером ряда Nothing
 
Irregular Expression,
Вставил вместо имеющегося "фев" значение "янв" и вместо "план" "факт", чтобы проверить, как его вставит
Касательно меседжа, сейчас попробую.
VBA: как вызвать ячейку с номером ряда Nothing
 
Irregular Expression,
1) Запустил макрос  Archive после открытия файла - отработал на ура. Вставил снова в строку, следующую за строкой "Текущие заявки" янв и факт в столбцы 19 и 21.
2) Лист один и тот же - ПЛК
3) Debug делал, выделяет строку Rows(j3+1).Insert
VBA: как вызвать ячейку с номером ряда Nothing
 
Irregular Expression,
я поставил янв и факт в столбцы 19 и 21 соответственно в первую строку диапазона Текущие заявки (строка 75) и в конец (строка 91) плюсом накидал таких же примеров в центр диапазона на рандом. Выдает такую ошибку
VBA: как вызвать ячейку с номером ряда Nothing
 
Irregular Expression, я бы рад поправить код, да знаний не хватает. Пока что могу только тривиальнейшим образом все делать.
VBA: как вызвать ячейку с номером ряда Nothing
 
Sanja, я с помощью данного кода ищу последнюю строку в CurrentRegion, чтобы цикл проверял каждый раз каждую строку в диапазоне.
VBA: как вызвать ячейку с номером ряда Nothing
 
Коллеги, прилагаю скрин, проблема не решена.
Есть предположение, что если ставить янв и факт в начале диапазона и в конце, то файл падает напрочь.
VBA: как вызвать ячейку с номером ряда Nothing
 
Друзья, не могу никак разрешить проблему с предыдущих тем (писал по поводу вырезания и вставления строк на одном листе).
С макросом (назвал его Archive) разобрался, написал. Но, извините за выражение, работает один раз, потом ошибки на Insert либо на объявление ячейки "zx" для CurrentRegion перед циклом Do...Loop- делается Empty. На лист "ПЛК", где работает данный макрос Archive, выведен еще один работающий при изменениях листа макрос. Есть предположение, что они конфликтуют.
Очень прошу помощи, сроки горят, файл прикладываю.
application defined or object defined error 1004
 
Цитата
Hugo написал:
Ну я задачу по коду не вычитывал, зачем...Если нужно перенести все - может в цикле пробежаться по 13 и 14 столбцам в CR2, собрать в union строки, и сразу все скопом скопировать/удалить.Делать желания нет, занят.
Спасибо за наводку, обязательно чекну. Была идея все в один так сказать буфер скопировать, но не имел представления даже, через что это делать. Попробую!
application defined or object defined error 1004
 
Hugo,
Я нашел, кажется, проблему: у меня есть активный макрос на листе, который срабатывает при изменении некоторых ячеек (через события). Данный макрос на вырезание "задевает" их.
Подскажите пожалуйста, в таком случае есть ли возможность остановить в моем коде на вырезание работу активного макроса на листе?
application defined or object defined error 1004
 
Цитата
Hugo написал:
Не понял вопроса. Так ведь просматривает - вот вижу написано Код ? 1If Cells(i, 14).Value = "ФАКТ" Then
Если поставить, например, в столбцах 13 и 14 "янв" и "факт" где-нибудь в серединной строке, не в начале диапазона, то он ее не вырезает и не вставляет.
Страницы: 1 2 3 След.
Наверх