Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Если значение А1 в диапазоне от Х до Y, то В1 = N
 
Nic70y, +100500
Как-то не допер до такого использования функций. А все на поверхности было))
Заполнять инфо по совпадению фирм.
 
Классический случай для использования ВПР() ГПР() посмотреть тута
Копирование листа (образца) и присвоение ему имени из диапазона ячеек VBA
 
Поиск существующего листа без генерации ошибки.
Код
Function ExistSheet(strSheetName As String) As Boolean
    Dim shWsheet As Worksheet
    
       
    For Each shWsheet In ActiveWorkbook.Worksheets
    
        If shWsheet.Name = strSheetName Then
            ExistSheet = True 'òàêîé ëèñò óæå ñóùåñòâóåò
            Exit Function
        End If
        
    Next
    ExistSheet = False
End Function

Копирование листа (образца) и присвоение ему имени из диапазона ячеек VBA
 
За проверку наличия листа отвечает функция ExistList(). В каком месте кода ее применить - дело хозяйкое. Функция работает исходя из следующих принципов:
1. Если есть лист с именем переданным в парамере strListName, возвращается значение "Верно"
2. Если такого листа нет - VBA генерирует ошибку, при возникновении которой выполнение идет от метки Metka и функция возвращает "Ложь" Т.е. листа нет.
Был у меня другой вариант проверки листа без вызывания ошибок по памяти не вспомню. Вечером выложу.
Копирование листа (образца) и присвоение ему имени из диапазона ячеек VBA
 
Для ссылки на диапазон в котором находятся имена листов создал в книге имя "Нужные_листы". Его уже программно превратил в диапазон Range. Единственный вопрос. Не получилось получить сразу ссылку на скопированный лист. Может кто подскажет как. Конструкция вроде
Код
Set x = ActiveWorkbook.Sheets("Образец").Copy ActiveWorkbook.Sheets(strLastName)

Отказалась работать. Ругается -  "нужен объект"
Копирование листа (образца) и присвоение ему имени из диапазона ячеек VBA
 
На коленке делал, но вроде работает
Код
Sub CopySheetExample()
    Dim objListCopy As Worksheet
    Dim strLastName As String
    Dim rngName As Range 'диапазон нужных листов
    Dim rgCell As Range ' переменная для перебора коллекции
    
    strLastName = "Образец"
    
    Set rngName = ActiveWorkbook.Sheets("настр").Range("Нужные_листы")
    
    For Each rgCell In rngName
        If ExistList(rgCell.Value) = False Then
            ActiveWorkbook.Sheets("Образец").Copy ActiveWorkbook.Sheets(strLastName)
            Set objListCopy = ActiveWorkbook.Sheets(1)
            objListCopy.Name = rgCell.Value
            strLastName = rgCell.Value
        End If
        
        
    
    Next rgCell

End Sub

Function ExistList(strListName As String) As Boolean

    Dim objWsheet As Worksheet
    
    On Error GoTo Metka:
    Set objWsheet = ActiveWorkbook.Sheets(strListName)
    ExistList = True
Exit Function
Metka:
    ExistList = False
    

End Function
заполнение ячейки Excel а по ней a соседней информация с прайса
 
Скорей всего ВПР. Только для того, чтобы все корректно работало нужно табицу с телефонами и адресами отсортировать по возрастанию по критерию поиска, т.е. по телефонам
Страницы: 1
Наверх