Задача: В Primer.xls в значение примечаний к ячейкам столбца "I" (I20:I70) вставлять значение определенных ячеек столбца "К" файла База.xlsx по условию совпадения ключевых значений в столбцах "C" Primer.xls и "А" База.xlsx . В примечании должен быть практически полный аналог ВПР, но как без VBA как запихать ВПР в комментарий я не знаю)
Задача: В Primer.xls в значение примечаний к ячейкам столбца "I" (I20:I70) вставлять значение определенных ячеек столбца "К" файла База.xlsx по условию совпадения ключевых значений в столбцах "C" Primer.xls и "А" База.xlsx . В примечании должен быть практически полный аналог ВПР, но как без VBA как запихать ВПР в комментарий я не знаю)Nikolay86
Nikolay86, а если формулу в столбце К оставить (столбец при желании можно скрыть) и такой макрос в модуль листа [vba]
Код
Private Sub Worksheet_Calculate() Dim i& For i = 20 To 70 If IsNumeric(Cells(i, 11)) And Not IsEmpty(Cells(i, 11)) Then Range("I" & i).ClearComments Range("I" & i).AddComment CStr(Cells(i, 11).Value) End If Next i End Sub
[/vba] Или на другое событие, не знаю, как лучше
Nikolay86, а если формулу в столбце К оставить (столбец при желании можно скрыть) и такой макрос в модуль листа [vba]
Код
Private Sub Worksheet_Calculate() Dim i& For i = 20 To 70 If IsNumeric(Cells(i, 11)) And Not IsEmpty(Cells(i, 11)) Then Range("I" & i).ClearComments Range("I" & i).AddComment CStr(Cells(i, 11).Value) End If Next i End Sub
[/vba] Или на другое событие, не знаю, как лучшеPelena
Убрал Worksheet_Calculate и добавил кусок в Worksheet_SelectionChange [vba]
Код
Dim int_ As Range, r_ Set int_ = Intersect(Target, Range("I20:I70")) If Not int_ Is Nothing Then r_ = int_(1).Row If IsNumeric(Cells(r_, 11)) And Not IsEmpty(Cells(r_, 11)) Then ' Range("I20:I70").ClearComments'эта строка выше int_(1).ClearComments int_(1).AddComment CStr(Cells(r_, 11).Value) End If End I
[/vba]f
Убрал Worksheet_Calculate и добавил кусок в Worksheet_SelectionChange [vba]
Код
Dim int_ As Range, r_ Set int_ = Intersect(Target, Range("I20:I70")) If Not int_ Is Nothing Then r_ = int_(1).Row If IsNumeric(Cells(r_, 11)) And Not IsEmpty(Cells(r_, 11)) Then ' Range("I20:I70").ClearComments'эта строка выше int_(1).ClearComments int_(1).AddComment CStr(Cells(r_, 11).Value) End If End I