в надежде получить дополнительные сведения об этом - раньше я только баловался с 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). Скопируйте, но это не сработало.
Открыто для всех и для любых мыслей - заранее спасибо!