Мекит Кайфарик, посмотрите PQ, там есть возможность импорта из pdf. Хотя вот сейчас смотрю свой Эксель - нет такой опции. Но в PBI точно было, и возможно было в офисе 365...
Для получения курсов с сайтов банков есть уже написанные функции пользователя (UDF), но конечно как выше сказали не со всеми банками такое возможно, и периодически банки меняют формат данных и коды приходится править. Что там сейчас с https://cbr.ru/ я не знаю, не использую.
Так если массив прописываете в коде - можно ведь в коде заполнить массив обычным способом, а не этими извращениями. Объявили нужного вида/размера, и каждый элемент прописали.
Ну и ещё вариант написать процедуру с параметром. Вызвать её 5 раз. Правда из примера кода я так и не понял что там за диапазон будет меняться, поэтому без примера процедуры.
b = Sheets("сводсобаки").[a2].CurrentRegion.Rows(2).Resize(Sheets("сводсобаки").[a2].CurrentRegion.Rows.Count - 1).Value
With .Sheets(1).Cells(.Sheets(1).Rows.Count, "A").End(xlUp)(2).Resize(UBound(b), 9)
Добрый день. Ну т.к. нигде в файле момент времени не указан, то вероятно занято 1118 мест, если смотреть по остаткам. А прежде чем уточнять - придумайте более развёрнутое название темы, я за Вас придумывать отказываюсь
Ошибка в данных, для этого кода нужны данные как в примере - в третьем столбце должны быть артикулы из первого. Ну или нужно менять как-то код. По зависанию не знаю, у меня не завис.
Можно распаковать, посмотреть файлы, изменить... Кстати иногда бывает полезно посмотреть что за значения на самом деле там в прописаны для ячеек, когда Эксель ведёт себя непойми как...
Зачем тут файл? Ну ясно ведь что ВПР с текстом работает. А если не работает - значит неправильно написали формулу, читайте хелп. Или нет совпадений, потому что или формат не совпадает, или ещё и значения. P.S. Вы в файле к номерам и фамилиям ещё срок годности карты напишите, и cvv
Я там дописал код который заполняет замены только для нужных выделенных кодов. Коды должны быть рядом в столбце, любом. Кстати если код оставить в модуле листа, то можно доработать (а может и так взлетит) для использования/заполнения диапазона в любом другом листе или даже файле. Т.е. есть база замен с этим кодом, и его применяете к любому другому клиентскому файлу с кодами, к которым нужно подобрать замены.
P.S. Проверил, работает и в другом файле вот прямо как есть. Но чуть изменил код выше чтоб обрабатывало случаи когда вписан код для которого в базе нет информации по замене.
Или вот так - в том файле пишите в E2 и E3 A001 A005 выделяете их, выполняете код
Код
Option Explicit
Sub Perebor2() 'коллекция в словаре
Dim a, i&, t, Dic As Object
Dim el, elel, col, s$, c As Range
a = Range("C2", Cells(Rows.Count, "A").End(xlUp)).Value
Set Dic = CreateObject("Scripting.Dictionary")
On Error Resume Next
With Dic
.CompareMode = 1
For i = 1 To UBound(a)
For Each t In Split(a(i, 3), "/")
For Each el In Split(a(i, 3), "/")
If Not .exists(t) Then .Add t, New Collection
.Item(t).Add el, el
Next
Next
Next
End With
For Each el In Dic.keys
For Each col In Dic.Item(el)
For Each elel In Dic.Item(col)
Dic.Item(el).Add elel, elel
Next
Next
Next
On Error GoTo 0
For Each c In Selection.Cells
s = "": el = Trim(c)
If Dic.exists(el) Then
For Each col In Dic.Item(el)
If col <> el Then s = s & "/" & col
Next
Else
s = "/Нет замен"
End If
c.Next = Mid(s, 2)
Next
End Sub