Есть ли способ скопировать переменную на другой лист? - PullRequest
0 голосов
/ 27 марта 2019

Я пытаюсь скопировать все ячейки, в которых есть GROUP, и вставить их на другой лист. Это мой код до сих пор. Но я продолжаю получать ошибку 438. Я очень новичок в VBA, поэтому любая помощь будет оценена.

 Sub FindAndExecute()

Dim Sh As Worksheet
Dim Loc As Range

For Each Sh In ThisWorkbook.Worksheets
    With Sh.UsedRange
        Set Loc = .Cells.Find(What:="GROUP*")
        If Not Loc Is Nothing Then
            Do Until Loc Is Nothing
                'Copy the data
                Sheets("Sheet1").Value(Loc).Copy
                'Activate the destination worksheet
                Sheets("Sheet2").Activate
                'Select the target range
                Range("A1").Select
                'Paste in the target destination
                ActiveSheet.Paste
                Set Loc = .FindNext(Loc)
            Loop
        End If
    End With
    Set Loc = Nothing
Next

End Sub

1 Ответ

1 голос
/ 27 марта 2019

Я не могу понять, как вы копируете и вставляете несколько ячеек в новый лист. Вы хотите сохранить исходный шаблон или сохранить его в формате набора данных? В любом случае, мое решение - скопировать исходный диапазон на новый лист и очистить ячейки, которые не соответствуют вашим критериям. Я проверил на своем компьютере.

Sub Test()

Dim ws As Worksheet
Dim wsa As Worksheet
Dim cll As Range

ThisWorkbook.Sheets.Add

Set wsa = ActiveSheet

lr = 1

For Each ws In ThisWorkbook.Worksheets
    If wsa.CodeName <> ws.CodeName Then
        ws.UsedRange.Copy wsa.Range("A" & lr)
        For Each cll In wsa.UsedRange.Cells
            If InStr(1, cll.Value, "Your Criteria String") = 0 Then
                cll.Value = ""
            End If
        Next cll
        lr = lr + ws.UsedRange.Rows.Count
    End If
Next ws

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