Я пытаюсь сделать макрос, где VBA ищет определенное слово в столбце и когда он находит слова, он копирует всю строку из одной книги в другую. Он может найти слово более одного раза, поэтому я пытаюсь сделать его петлей, хотя он только петли ONCE в цикле for и затем останавливается.Только для циклов цикла и сбоев
Вот для.
Application.Workbooks.Open ("C:\Documents and Settings\1848052\Mis documentos\Portafolios\Vistas\Portafolio.xlsm")
i = 9
For j = 8 To 1000
celda = Workbooks("Portafolio.xlsm").Sheets("FemCo").Range("B" & j).Value
If celda = area Then
Workbooks("Portafolio.xlsm").Sheets("FemCo").Range("B" & j).Select
fila = ActiveCell.Row
Windows("Portafolio.xlsm").Activate ' Copiar row
Range("A" & fila & ":" & "V" & fila).Select
Selection.Copy
Windows("Vista RPAs.xlsm").Activate 'Pegar row
Range("B" & i & ":W" & i).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
i = i + 1
End If
Next
Как я уже говорил раньше, это только петли один раз, а затем это:
Workbooks("Portafolio.xlsm").Sheets("FemCo").Range("B" & j).Select
является та часть, которая выходит из строя, и я получаю «Ошибка 1004». Как вы думаете, я могу исправить эту ошибку?
Заранее спасибо.
пожалуйста, не используйте 'select' заявление! Наиболее вероятная проблема заключается в том, что вы пытаетесь выбрать диапазон в неактивной книге. Попробуйте добавить 'Windows (« Portafolio.xlsm »). Активировать' перед строкой 'Workbooks (« Portafolio.xlsm »). Листы (« FemCo »). Диапазон (« B »& j). Выберите« –
»Спасибо большое , он сделал трюк! Как бы вы предложили мне найти номер строки ячейки без использования оператора select? – robti
попробуйте следующее: 'fila = Workbooks (« Portafolio.xlsm »). Листы (« FemCo »). Диапазон (« B »& j) .Row' или просто' fila = j', потому что 'Range (« B »& j) 'находится в строке № j :) –