Как исправить ошибку во время выполнения 424 «Требуется объект» в Excel VBA - PullRequest
0 голосов
/ 24 сентября 2019

Я работаю над проектом Excel, в котором я пытаюсь создать определенные строки из «Листа 1», которые содержат слово «external» в столбце C, а затем скопировать и вставить эту строку в «Лист 3»

Я понимаю, что есть вещь, называемая "фильтром", но это не вариант.

Этот проект для моей рабочей команды, которая хочет иметь возможность извлекать строки и столбцы, которые отображаются как "«Внешний», а затем сможете вставить их и другую информацию на другой лист, содержащий эту информацию.

Private Sub CommandButton1_Click()
    a = Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row

    For i = 2 To a
        If Worksheets("Sheet1").Cells(i, 3).Value = "External" Then
            Worksheets("Sheet1").Rows(i).Copy
            Worksheets("Sheet3").Activate
            b = Worksheets("Sheet3").Cells(Row.Count, 1).End(xlUp).Row
            Worksheets("Sheet3").Cells(b + 1, 1).Select
            ActiveSheet.Paste
            Worksheets("Sheet1").Activate
        End If
    Next

    Application.CutCopyMode = False

    ThisWorkbook.Worksheets("Sheet1").Cells(1, 1).Select
End Sub

Ожидаемый результат состоял в том, чтобы отобразить все строки, содержащие слово «Внешний» в листе 1, столбец С, вновый лист и вся его информация отображается в листе 3.

Рабочий лист Excel для справки:

enter image description here

1 Ответ

0 голосов
/ 24 сентября 2019

Сначала объявите все свои переменные.Затем вы можете попробовать изменить If Worksheets("Sheet1").Cells(i, 3).Value = "External" Then на If Worksheets("Sheet1").Range("C" & i).Text = "External" Then.Смотрите здесь:

 Private Sub CommandButton1_Click()

    Dim a As Long
    Dim i As Long
    Dim b As Long

    a = Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row

    For i = 2 To a
        If Worksheets("Sheet1").Range("C" & i).Text = "external" Then
            Worksheets("Sheet1").Rows(i).Copy
            Worksheets("Sheet3").Activate
            b = Worksheets("Sheet3").Cells(Rows.Count, 1).End(xlUp).Row
            Worksheets("Sheet3").Cells(b + 1, 1).Select
            ActiveSheet.Paste
            Worksheets("Sheet1").Activate
        End If
    Next

    Application.CutCopyMode = False

    ThisWorkbook.Worksheets("Sheet1").Cells(1, 1).Select
 End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...