Новости:

К первому сообщению темы должен быть прикреплен файл примера в формате xls*.
Приложив пример, Вы избавите себя и других от вопросов типа "А какой критерий?", "А куда выводить результат?", "А сколько строк?" и все тех же просьб выложить файл. Рисовать за Вас Ваши же таблички с заданиями, а затем и решение к ним, никто желанием не горит. Да и, как показывает практика, в большинстве случаев без файла решения не найти.

Главное меню

VBA: intersect -- можно ли получить адрес ячейки

Автор Сергей Разумов, 11.01.2017, 09:24

« назад - далее »

Сергей Разумов

Добрый день, форумчане

у меня вопрос, можно ли получить адрес ячейки по пересечению двух Range()

Sub MakeInclude()

Dim mTable As ListObject, isec
    Sheets("DataSource").Select
    Set mTable = ActiveSheet.ListObjects("StartingData")
   
    Range(mTable.Name & "[[Unit Name]]").Select
   
       
    For Each cell In Selection
        If cell.Interior.ColorIndex = 6 Then
            isec = Application.Intersect(Range(mTable.Name & "[[Included]]"), _
                    Range(Cells(cell.Row, 1), Cells(cell.Row, mLastCol)))
            isec.Value = "include"
        End If
    Next cell
   
End Sub


по отладчику isec  = Empty, хотя в Immediate два ренджа пересекаются
  Range("StartingData[[Included]]").Select
  Range(Cells(6, 1), Cells(6, 14)).Select

помогите пож. понять, в чем подвох или мое непонимание метода intersect

Заранее большое спасибо!

cheshiki1


exceleved

Сергей Разумов,
Intersect не нужен, все прощеSub MakeInclude()
Dim cell As Range, n&
  With Sheets("DataSource").ListObjects("StartingData")
    n = .ListColumns("Included").Range.Column - .ListColumns("Unit Name").Range.Column 'разность номеров столбцов
    For Each cell In .ListColumns("Unit Name").DataBodyRange
      If cell.Interior.ColorIndex = 6 Then cell.Offset(, n).Value = "include"
    Next cell
  End With
End Sub
Почитайте https://www.thespreadsheetguru.com/blog/2014/6/20/the-vba-guide-to-listobject-excel-tables

Сергей Разумов

cheshiki1, мммммммм..... почувствовал легкую досаду. Спасибо!!

exceleved, спасибо за ссылку на качественный ресурс!