您好我正在尝试通过VBA在WinSCP中上传文件。 mySession.Open mySessionOptions
获得Error - Network error connection to "103.231.8.66" time out
。我用谷歌搜索,但没有想到。任何建议都会赞赏
Sub test()
Dim wbs As String
wbs = "D:\Ashok\Work\Loan_Input_Template V8-Library.xlsx"
Dim mySession As New Session
' Enable custom error handling
On Error Resume Next
Call Upload(mySession, wbs)
' Query for errors
If Err.Number <> 0 Then
MsgBox "Error: " & Err.Description
' Clear the error
Err.Clear
End If
' Disconnect, clean up
mySession.Dispose
' Restore default error handling
On Error GoTo 0
' wb.Close SaveChanges:=True
'FileSystemObject.DeleteFile sPathName
End Sub
Private Sub Upload(ByRef mySession As Session, ByRef wb1 As String) 'error line
Dim wb As Workbook
Set wb = Workbooks.Open(wb1)
' Setup session options
Dim mySessionOptions As New SessionOptions
With mySessionOptions
.Protocol = Protocol_SFTP
.HostName = "103.231.8.66"
.UserName = "username"
.Password = "password"
.SshHostKeyFingerprint = "ssh-ed25519 256 df:94:44:56:1b:c2:75:8b:b4:58:3a:e2:ef:2e:0d:78"
End With
' Connect
mySession.Open mySessionOptions ' ERROR LINE
' Upload files
Dim myTransferOptions As New TransferOptions
myTransferOptions.TransferMode = TransferMode_Binary
Dim transferResult As TransferOperationResult
'i am not sure this line will working or not
Set transferResult = mySession.PutFiles(wb, "/home/sftpcf/", False, myTransferOptions)
' Throw on any error
transferResult.Check
' Display results
Dim transfer As TransferEventArgs
For Each transfer In transferResult.Transfers
MsgBox "Upload of " & transfer.FileName & " succeeded"
Next
End Sub
错误消息:
手动记录:
答案 0 :(得分:0)
终于找到了回答我的问题:在.PortNumber = XXXX
中添加端口号mySessionOptions
,我删除了Set wb = Workbooks.Open(wb1)
。它的作品非常完美
答案 1 :(得分:0)
WinSCP VBA
WinSCP 端口号默认为正在使用的协议,即 SFTP 端口 22、FTP 端口 21。
协议的会话选项默认是使用端口 22 的 SFTP。
如果您使用的是 SFTP,则 sessionOptions 不需要端口号或协议。
<块引用>以下是默认 SFTP 的示例
Dim mySessionOptions As New SessionOptions
With mySessionOptions
.HostName = "103.231.8.66"
.UserName = "username"
.Password = "password"
.SshHostKeyFingerprint = "ssh-ed25519 256 df......"
End With