2014-10-30 11 views
2

爲了便於報告,我將網上各種來源的數據導入到Excel工作簿中。是否可以使用VBA更改互聯網連接(例如從WiFi到電纜)?

問題是:雖然我想要的一些東西是在我公司的專用網絡上(需要連接電纜),但我想要連接的一些URL/Web服務不被我公司的代理(通過電纜連接)所允許。

因此,我必須使用另一個沒有代理的連接(通過WiFi)來讓這些工作。 這WiFi連接始終活躍在我的電腦上,但它需要我手動拔掉數據線我進口量的一半,並插回我公司的網絡另一半上訪問文件...

我想知道VBA是否有辦法根據我需要告訴計算機使用有線/無線網絡。

我在使用Excel 2010/VBA的Windows XP Pro計算機上工作。請幫忙!

+3

AFAIK,使用本機VBA代碼,你不能。也許使用C++,你可以爲VBA創建一個庫,然後你可以。 – 2014-10-30 09:01:45

+0

感謝這個,不知道我是否可以儘量爲VBA創建一個庫(我不是開發者),但我會知道從哪裏開始尋找......再次感謝@SiddharthRout – Arthur 2014-10-31 08:16:26

+0

如果這真的很重要,然後在像freelancer.com/elance.com/odesk.com這樣的網站發佈一個項目。那裏有很多C++大師。你實際上可能會找到某人爲你寫這個庫:) – 2014-10-31 08:18:33

回答

2

發現了兩個方法來啓用或禁用從VBA即改變網絡適配器連接:

「調整這些根據您的需要,即更改適配器名稱,改變啓用或禁用參數,改變路徑,更改文件名等。 VBS方法很長,但提供了更多的控制。蝙蝠的方法是短暫但IMO限於

1使用VBS Source link

'file name: asdf.vbs 
'Get and disable all physical wired adapters (AdapterTypeID=0) (Ethernet 802.3) 
'Wscript.Echo "test" 
Set wmi = GetObject("winmgmts:root\CIMV2") 
Set adapters = wmi.ExecQuery("Select * from Win32_NetworkAdapter where _ 
AdapterTypeId=0 AND NetConnectionID IS NOT NULL",,48) 

For Each adapter in adapters 
    With adapter 
    WScript.Echo "available: " & .Availability & " enabled: " & .NetEnabled & " netconStatus: " & .NetConnectionStatus & " status: " & .Status & " netconnID: " & .NetConnectionID & " adType: " & .AdapterType 

    'adapter.disable() 
    'adapter.enable() 
    End With 
Next 

' Get and disable all physical wireless adapters (AdapterTypeID=9) (wireless) 

2使用球棒Ref link1Ref link2

'file name: switch_lan6.bat 
@echo off 
start /MIN cmd.exe /c "netsh interface set interface name="Local Area Connection 6" admin=disabled" 

運行這些內部Excel VBA中:

Shell "wscript ""C:\Users\USER\Desktop\asdf.vbs""", vbNormalFocus 

Call Shell(ThisWorkbook.Path & "\switch_lan6.bat", 0) 
+0

太棒了!我可以列出所有可用的連接,但不能'禁用()'他們呢......我會在本週晚些時候嘗試。太感謝了! – Arthur 2014-11-04 08:19:22

+0

@Arthur歡迎。您可以通過vbs中的'adapter.disable'和bat中的'..admin = disabled'禁用連接。如果送達目的,請稍後標記爲答案。 – ZAT 2014-11-04 08:53:09

相關問題