Спасибо The_Prist.
Работает.
Работает.
01.02.2013 13:56:52
Добрый день
Существует множество каталогов с одинаковыми схемами таблиц, но данные не повторяются. Пытаюсь создать функцию для поиска значения по всем каталогам и вывода данных на основе впр(), чтобы не плодить если(если(если... Подскажите пожалуйста, что не так (урезал до двух каталогов): Function vlookk(Что_ищем As Variant, В_каком_столбце_Ищем As Long) On Error Resume Next Dim q, n As String, rngSKO As Range, rngVW As Range, myRange As Range q = "C:\Users\Desktop\" ChDir q Set rngSKO = Workbooks("Каталог1.xlsb" .Sheets("sko" .Range("A:H" Set rngVW = Workbooks("Каталог2.xlsb" .Sheets("vw" .Range("A:H" Set myRange = Application.Union(rngSKO, rngVW) n = R eplace(R eplace(R eplace(R eplace(Что_ищем, "_", "" , "-", "" , " ", "" , ".", "" If n <> "" & Not (IsError(Application.VLookup(n, myRange, В_каком_столбце_Ищем, False))) And Not myRange Is Nothing Then vlookk = Application.VLookup(n, myRange, В_каком_столбце_Ищем, False) Else vlookk = "" End If End Function Данная функция не работает. Или я не правильно понял метод Union. Спасибо. |
|
|
14.09.2012 00:30:37
Доброго времени суток!
Перерыл форум, похожей темы не нашел. Есть базовая книга, в которую нужно из приходящих файлов добавлять (суммировать) по номеру заявки (номера заявок в базовой книге не повторяются) данные соответственно в таблицы расчет и факт. Возможно ли макросом систематизировать, без формул. Если да, то подскажите пожалуйста код макроса, если несложно. Прилагаю урезанный файл. Спасибо. |
|
|
15.06.2012 18:44:38
Спасибо большое за помощь, воспользовался вариантом предложенным ikki.
Получилось так: Function Rus%(s$) Dim i% For i = 1 To Len(s) If Mid(s, i, 1) Like "[А-Яа-яЁё]" Then Rus = i: Exit Function Next End Function Sub skynano() Application.ScreenUpdating = False Columns(1).NumberFormat = "@" llLastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count For ll = llLastRow To 1 Step -1 If Cells(ll, 1) <> "" Then _ Cells(ll, 30) = Cells(ll, 1): Cells(ll, 1) = Left(Cells(ll, 30), Rus(Cells(ll, 30)) - 2): _ Cells(ll, 2) = Mid(Cells(ll, 30), Rus(Cells(ll, 30)), Len(Cells(ll, 30))) Next ll llLastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count For li = llLastRow To 1 Step -1 If Application.CountA(Rows(li)) = 0 Then Rows(li).Delete If Cells(li, 1) <> "" Then _ Cells(li, 30) = "" Next li End Sub |
|
|
13.06.2012 10:04:20
Доброго времени суток!
На сайте в приемах есть статья "Делим текст на куски". Данная пользовательская функция делит текст по указанным пользователем символам разделения: , . - _ и т.д. К моему случаю не подойдет, т.к. пробелы присутствуют и в артикулах: 1U6807423B 01C Молдинг 'перед 01C один пробел 3T0857537 GRU Корпус 'перед GRU два пробела 115940155 Клапан 'здесь расширение отсутствует ... В наименовании все слова на кирилице (Молдинг), а артикул на латинице(1U6807423B 01C). Подскажите пожалуйста как сделать деление артикула и наименования по разным столбцам. Заранее спасибо. |
|
|