Range.Select получает ошибку после однократного цикла - PullRequest
0 голосов
/ 11 июля 2020

Привет, я использую эту формулу для l oop через определенные c листы, а затем получает определенный диапазон и копирует его на другой лист. Когда я впервые запускаю макрос, он успешен в первом l oop. Но как только он возвращается, чтобы снова запустить l oop, возникает ошибка ..

В сообщении об ошибке.

Run Time Error 1004: Method 'Range' of object ' _Worksheet 'не удалось.

Это строка, которая выделяется:

ws.Range(StartCell, ws.Cells(LastRow, LastColumn)).Select

Любая помощь будет принята с благодарностью.

Sub sheetLoop()

Application.Calculation = xlCalculationManual

Dim ws As Worksheet
Dim LastRow As Long
Dim LastColumn As Long
Dim StartCell As Range
Set StartCell = Range("A10")

Windows("PMP Open Seats Report - 11-05-20 -.xls").Activate

For Each ws In Worksheets

 If ws.Name = "16 - 30 Days" Or ws.Name = "31 - 60 Days" Or ws.Name = "61 - 90 Days" Or ws.Name = "90+ Days" Then
  With ws
  ws.Activate
  
  LastRow = ws.Cells(ws.Rows.Count, StartCell.Column).End(xlUp).Row
  LastColumn = ws.Cells(StartCell.Row, ws.Columns.Count).End(xlToLeft).Column
  
  MsgBox LastRow
  MsgBox LastColumn
  MsgBox ws.Name
  

  'Select Range
  ws.Range(StartCell, ws.Cells(LastRow, LastColumn)).Copy
  
  Selection.Copy
  Sheets("RAW").Activate
  Range("A1").Select
  Selection.End(xlDown).Select
  ActiveCell.Offset(1, 0).Range("A1").Select
  ActiveSheet.Paste
  Range("A1").Select
 
  
  Application.CutCopyMode = False
  
 End With
  
 End If
Next ws

Application.Calculation = xlCalculationAutomatic
End Sub

1 Ответ

0 голосов
/ 11 июля 2020

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

Set StartCell = Range("A10")

Переместите эту строку внутри l oop после ws имеет значение, а затем укажите ссылку на лист.

With ws
  ws.Activate
  Set StartCell = ws.Range("A10")

Посмотрите, делает ли это то, что вы ожидаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...