Копировать / вставлять ячейки на основе критериев соответствия в разные строки на нескольких листах - PullRequest
0 голосов
/ 13 ноября 2018

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

Я пытаюсь создать макрос, которыйпроведет поиск по другим вкладкам и сравнит столбец «Q», в котором находится вопрос #.Если на вкладке есть ячейка Q, соответствующая основному списку, я бы хотел скопировать A #: Q # из строки главного списка и вставить ее на этот лист.С большим количеством поиска на этом сайте, вот, как далеко я получил:

Sub Refresh()

Refresh Macro

Keyboard Shortcut: Ctrl+r
  Dim wM As Worksheet, wR As Worksheet
  Dim r1 As Range, R2 As Range
  Dim cel1 As Range, cel2 As Range
  Dim LastRow As Long
  Application.ScreenUpdating = False

Set wR = ActiveSheet
Set wM = ActiveSheet.Next

With wR
  Set R2 = .Range("Q1", .Cells(.Rows.Count, .Columns("Q:Q").Column).End(xlUp))
End With

With wM
  Set r1 = .Range("Q1", .Cells(.Rows.Count, .Columns("Q:Q").Column).End(xlUp))
End With

LastRow = 1


On Error Resume Next
For Each cel1 In r1
  With Application
    Set cel2 = .Index(R2, .Match(cel1.Value, R2, 0)) 'find match in active page
    If Err = 0 Then
        copyResult cel2, LastRow 'copy result to next page
    End If
    Err.Clear
    LastRow = LastRow + 1
End With
Next cel1

End Sub

Sub copyResult(cel As Range, row As Long)
  Dim ws As Worksheet
  Set ws = ActiveSheet.Next

  cel.EntireRow.Copy ws.Cells(row, 1)

End Sub

Я застрял в двух местах: 1. пытаюсь найти способ вызвать следующий лист для "wM", чтобы получитьобновлено 2. получение раздела copyResult для копирования только части строки - на каждой вкладке есть раздел примечаний, который не должен перезаписываться.Я попытался сделать cel.Range ("A" & cel.row: "Q" & cel.row). Скопируйте, но это не сработало.

Открыто для всех и для любых мыслей - заранее спасибо!

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