![包含服务器列表和不同远程桌面链接的 Excel 表](https://linux22.com/image/1436262/%E5%8C%85%E5%90%AB%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%88%97%E8%A1%A8%E5%92%8C%E4%B8%8D%E5%90%8C%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%E9%93%BE%E6%8E%A5%E7%9A%84%20Excel%20%E8%A1%A8.png)
我找到了一些从 Excel 执行远程桌面的代码,
Sub RDP()
Dim RetVal As Variant
RetVal = Shell("c:\WIndows\System32\mstsc.exe " & Range("A1"), 1)
End Sub
我有许多服务器需要管理,并在我的 Excel 表中列出它们:
ServerName DBServer APPServer
Server 1 10.21.40.20 10.21.40.24
这个列表在不断扩大,我正在寻找一种聪明的方法来单击这些 IP 中的任何一个,就像 Excel 中的链接一样,并执行上述 RDP 代码。
希望可以使用宏有效地完成此操作。
答案1
经过多次尝试后,以下是如何做到的:
服务器的 IP 位于 B 和 C 列,用户名和密码位于 D 和 E 列。
双击 IP 后,正确的用户名和密码凭据将被存储,然后启动 RDP。
确认可以正常工作!
感谢大家。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim RetVal As Variant
If Target.Cells.Count = 1 Then
If Not Intersect(Target, Range("B2:B999")) Is Nothing Or Not Intersect(Target, Range("C2:C999")) Is Nothing Then
If Not IsEmpty(Target) Then
RetVal = Shell("cmdkey /generic:""" & Target & """ /user:""" & Target.Offset(0, 1) & """ /pass:""" & Target.Offset(0, 2) & """", 1)
RetVal = Shell("c:\Windows\System32\mstsc.exe /admin /v:" & Target, 1)
End If
End If
End If
End Sub