2016-10-14 5 views
0

Здравствуйте мне нужна помощь, я получаю ошибку в моем коде в этой строке кодаОшибка выполнения 1004 Метод диапазон объекта глобального не удалось

Range(copyRngStart & copyRngEnd).Copy Destination:=Worksheets("Display").Range("A" & lr2 + 1) 

Ошибка выполнения 1004 Метод диапазон объекта глобального не удалось

может кто-то, пожалуйста, взгляните, чтобы исправить это, спасибо.

Sub Distinct() 

    Dim lr2 As Long 
    Dim searchRng As Range, copyRngStart As Range, copyRngEnd As Range 

    Set searchRng = Worksheets("Information").Range("A1") 
    lr2 = Sheets("Display").Cells(Rows.Count, "A").End(xlUp).Row 

    ' Enter/continue loop while A-column is non-empty 
    Do While searchRng.Value <> "" 

     ' When we encounter the string TRNS in column A and Triumph Foods LLC in column E 
     If searchRng.Value = "TRNS" And searchRng.Offset(0, 4).Value = "Triumph Foods LLC" Then 

      ' Set the start of the copy area 
      Set copyRngStart = searchRng 
     End If 

     ' When we encounter the string ENDTRNS 
     If searchRng.Value = "ENDTRNS" Then 
      ' .. set the end of the copy area 
      Set copyRngEnd = searchRng.Offset(-1, 5) 

      ' Copy and paste 
      Range(copyRngStart & copyRngEnd).Copy Destination:=Worksheets("Display").Range("A" & lr2 + 1) 
      lr2 = Sheets("Display").Cells(Rows.Count, "A").End(xlUp).Row 
     End If 

     ' Increment search loop 
     Set searchRng = searchRng.Offset(1, 0) 
    Loop 
End Sub 
+4

Изменение '&' в '' –

+1

Только первый '' & оставить второй один. –

+0

Я сделал эти изменения и все еще получаю ту же ошибку – AndresBryan29

ответ

0
Sub Distinct() 

    Const TRNS_START As String = "TRNS" 
    Const TRNS_END As String = "ENDTRNS" 
    Const COMPANY As String = "Triumph Foods LLC" 

    Dim searchRng As Range, copyRngStart As Range, copyRngEnd As Range 

    Set searchRng = Worksheets("Information").Range("A1") 

    ' Enter/continue loop while A-column is non-empty 
    Do While searchRng.Value <> "" 

     ' When we encounter the string TRNS in column A and Triumph Foods LLC in column E 
     If searchRng.Value = TRNS_START And _ 
      searchRng.Offset(0, 4).Value = COMPANY Then 

      Set copyRngStart = searchRng ' Set the start of the copy area 
     End If 

     ' When we encounter the string ENDTRNS 
     ' (*and had a start cell already*) 
     If searchRng.Value = TRNS_END And Not copyRngStart Is Nothing Then 

      Set copyRngEnd = searchRng.Offset(-1, 5) 

      copyRngEnd.Worksheet.Range(copyRngStart, copyRngEnd).Copy _ 
       Destination:=Sheets("Display").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0) 

      Set copyRngStart = Nothing 'clear the "start" range 

     End If 


     Set searchRng = searchRng.Offset(1, 0) 
    Loop 
End Sub 
+0

Спасибо, человек, ты БОГ, изумительный, это разрешило мои проблемы. – AndresBryan29

Смежные вопросы