2014-02-17 3 views
3

Я использовал Google, чтобы попытаться найти решение моей проблемы, но не смогли найти решениеExcel VBA Гнездо для подключения

У меня есть VB.NET приложение, используя этот код успешно отправляет строку на указанный IP-адрес и порт.

На этом удаленном компьютере я могу получить эту строку и сделать то, что хочу с ней, используя VB.NET, но мне нужно использовать Excel.

Public Sub BroadcastData(ByVal toSend As String, ByVal PortToSendTo As Long) 
     Dim s As New Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp) 
     Dim sendBUF As Byte() = Encoding.ASCII.GetBytes(toSend) 
     Dim ep As New IPEndPoint(MainForm.IPToBroadcastTo, PortToSendTo) 
     s.SendTo(sendBUF, ep) 
     System.Diagnostics.Debug.WriteLine(s.SendTo(sendBUF, ep)) 
End Sub 

где IPToBroadcstTo является IPaddress удаленного компьютера по локальной сети.

Я хотел бы, чтобы компьютер, принимающий строку, в Excel, взял строку и записал ее в ячейку, а затем выполнил вычисления с ней.

ответ

1

Код, который вы отправили, является VB.NET. Excel использует VBA, который, хотя он разделяет некоторый общий синтаксис, является совершенно другим языком с уменьшенным набором библиотек.

Например, нет Socket или IPEndPoint класс в VBA.

Итак, ответом является то, что вы не можете использовать этот код для открытия сокета в Excel.

Посмотрите на контроль Winsock или

Может быть, вы могли бы написать сборки .NET и выставить его через COM interop, чтобы позволить этому быть использованы в Excel.

Смежные вопросы