Использование Excel 2007 и попытка объединить VBA, который будет копировать строки из листа, называемого Forecasts in, в различные существующие листы, где имя рабочего листа соответствует значению A2: A в листе прогнозов.«Ошибка времени выполнения 9» при копировании строк с одного листа на другие.
Когда я бегу ниже я получаю Ошибка выполнения 9, и режим отладки выделяет следующую строку
Set objNewSheet = ThisWorkbook.Worksheets("Sheet" & rngCell.Value)
Полный код является:
Sub Retrieve_Forecasts()
Dim objWorksheet As Worksheet
Dim rngBurnDown As Range
Dim rngCell As Range
Dim strPasteToSheet As String
'Used for the new worksheet we are pasting into
Dim objNewSheet As Worksheet
Dim rngNextAvailbleRow As Range
'Define the worksheet with our data
Set objWorksheet = ThisWorkbook.Worksheets("Forecasts")
'Dynamically define the range to the last cell.
'If we are not starting in A1, then change as appropriate
Set rngBurnDown = objWorksheet.Range("A2:A" & objWorksheet.Cells(Rows.Count, "A").End(xlUp).Row)
'Now loop through all the cells in the range
For Each rngCell In rngBurnDown.Cells
objWorksheet.Select
If rngCell.Value <> "" Then
'select the entire row
rngCell.EntireRow.Select
'copy the selection
Selection.Copy
'Now identify and select the new sheet to paste into
Set objNewSheet = ThisWorkbook.Worksheets("Sheet" & rngCell.Value)
objNewSheet.Select
'Looking at your initial question, I believe you are trying to find the next available row
Set rngNextAvailbleRow = objNewSheet.Range("A1:A" & objNewSheet.Cells(Rows.Count, "A").End(xlUp).Row)
Range("A" & rngNextAvailbleRow.Rows.Count + 1).Select
ActiveSheet.Paste
End If
Next rngCell
objWorksheet.Select
objWorksheet.Cells(1, 1).Select
End Sub
Может кто-нибудь помочь?
Нажмите кнопку «Отладка» и в редакторе VBA держите мышь над «rngCell.Value» на этой строке - каково ее значение? –
В принципе - он не может найти лист, к которому вы пытаетесь получить доступ («Лист» & rngCell.Value). Проверьте имена листов и убедитесь, что лист действительно существует в книге. – therak
@paulbica - rngCell.value = "10000001", который соответствует Sheet4 (10000001) в средстве просмотра проекта – djraynes