Я предлагаю сделать это с помощью пользовательской функции (UDF). Установите приведенный ниже код в стандартный модуль кода (нажмите Alt + F11, чтобы открыть окно редактора VB. Щелкните правой кнопкой мыши проект VBA в окне проводника проекта на слева выберите «Вставка»> «Модуль» и вставьте код в пустую панель кода справа. Не забудьте сохранить книгу в формате xlsm (с поддержкой макросов).
Function ExtractAK1(Cell As Range) As String
Const AK1 As String = "AK1-"
Dim Var As Variant
Dim Sp() As String
Dim i As Integer
Var = Cell.Value
If VarType(Var) = vbString Then
If InStr(1, Var, AK1, vbTextCompare) Then
Sp = Split(Trim(Var), AK1)
For i = 1 To UBound(Sp)
Sp(i) = AK1 & Left(Trim(Sp(i)), 5)
Next i
Var = Join(Sp, ",")
ExtractAK1 = Mid(Var, InStr(Var, ",") + 1)
End If
End If
End Function
Вызовите функцию на листе. как вы бы вызвали встроенную функцию Excel, например,
=ExtractAK1($A2)
При правильной установке Excel предложит имя функции, когда вы начнете вводить ее. $ A2 - это ячейка, содержащая ваш текст. Скопируйте Формула вниз столько, сколько нужно. Вы можете переопределить функцию для использования в цикле, если это более удобный способ ее использования.
MiniUPNP используется по крайней мере одним bittorrent клиентом (Передача) и должен хорошо работать.
Bonjour в OS X и Windows может использоваться для сопоставления портов с маршрутизаторы, поддерживающие uPNP или NAT-PMP. Я не использовал API (DNSServiceNATPortMappingCreate) , но я успешно опубликовал глобальные службы как для Windows, так и для OS X за маршрутизатором NAT-PMP. Я не уверен, захотят ли ваши пользователи Windows установить Bonjour (хотя он может уже быть у них, если они используют iTunes или Safari) для использования вашего приложения, но поддержка OS X не должна быть проблемой.