Здравствуйте. Помогите пожалуйста с такой задачей В книге несколько листов, на листах есть по 2 столбца, надо сравнить ячейки из 1-го столбца каждого листа с первым столбцом листа на котором запущен макрос, при совпадении значений, добавить примечание (комментарий) в виде значения ячейки из вторых столбцов с каждого листа, ко второму столбцу листа, с которого запущен макрос Если значения из 1-го столбца совпадают на нескольких листах в т.ч. на листе с макросом, то комментарий становится многострочным В приложении пример с макросом добавляющим примечания на 3-ий лист с соседних листов, но там строки подряд, а хотелось бы с подстановкой, возможно ли такое реализовать?
Здравствуйте. Помогите пожалуйста с такой задачей В книге несколько листов, на листах есть по 2 столбца, надо сравнить ячейки из 1-го столбца каждого листа с первым столбцом листа на котором запущен макрос, при совпадении значений, добавить примечание (комментарий) в виде значения ячейки из вторых столбцов с каждого листа, ко второму столбцу листа, с которого запущен макрос Если значения из 1-го столбца совпадают на нескольких листах в т.ч. на листе с макросом, то комментарий становится многострочным В приложении пример с макросом добавляющим примечания на 3-ий лист с соседних листов, но там строки подряд, а хотелось бы с подстановкой, возможно ли такое реализовать?xyz
Sub comm() Dim iLastRow As Long On Error Resume Next iLastRow = Cells(Rows.Count, 1).End(xlUp).Row For i = 11 To iLastRow txt1 = "" txt2 = "" If Not IsEmpty(Cells(i, 4)) Then txt1 = WorksheetFunction.VLookup(Cells(i, 1), Sheets(1).Range("A:D"), 4, False) txt2 = WorksheetFunction.VLookup(Cells(i, 1), Sheets(2).Range("A:D"), 4, False) Worksheets(3).Cells(i, 4).Comment.Delete Worksheets(3).Cells(i, 4).AddComment.Text ActiveWorkbook.Sheets(1).Name & " : " _ & txt1 & vbNewLine & ActiveWorkbook.Sheets(2).Name & " : " & txt2 End If Next End Sub
[/vba]
Добрый день. Если правильно понял [vba]
Код
Sub comm() Dim iLastRow As Long On Error Resume Next iLastRow = Cells(Rows.Count, 1).End(xlUp).Row For i = 11 To iLastRow txt1 = "" txt2 = "" If Not IsEmpty(Cells(i, 4)) Then txt1 = WorksheetFunction.VLookup(Cells(i, 1), Sheets(1).Range("A:D"), 4, False) txt2 = WorksheetFunction.VLookup(Cells(i, 1), Sheets(2).Range("A:D"), 4, False) Worksheets(3).Cells(i, 4).Comment.Delete Worksheets(3).Cells(i, 4).AddComment.Text ActiveWorkbook.Sheets(1).Name & " : " _ & txt1 & vbNewLine & ActiveWorkbook.Sheets(2).Name & " : " & txt2 End If Next End Sub