First problem : Run-time error ‘462’ : The remote server machine does not exist or is unavailable.
The issue here is the use of :
- Late Biding :
Dim Smthg As Object
or - Implicit references :
Dim Smthg As Range
instead of
Dim Smthg As Excel.Range
orDim Smthg As Word.Range
So you need to fully qualified all the variables that you set (I’ve done that in your code)
Second problem
You work with multiple instances of Word and you only need one to handle multiple documents.
So instead of creating a new one each time with :
Set WordApp = CreateObject("Word.Application")
You can get an open instance (if there is one) or create one with that code :
On Error Resume Next
Set WordApp = GetObject(, "Word.Application")
If Err.Number > 0 Then Set WordApp = CreateObject("Word.Application")
On Error GoTo 0
And once you’ve put this at the start of your proc, you can use this instance until the end of the proc and before the end, quit it to avoid having multiple instances running.
Here is your code reviewed and cleaned, take a look :
Sub Docs()
Dim WordApp As Word.Application
Dim WordDoc As Word.Document
' Control if folder exists, if not create folder
If Len(Dir("F:documents" & Year(Date), vbDirectory)) = 0 Then MkDir "F:documents" & Year(Date)
' Get or Create a Word Instance
On Error Resume Next
Set WordApp = GetObject(, "Word.Application")
If Err.Number > 0 Then Set WordApp = CreateObject("Word.Application")
On Error GoTo 0
Workbooks("exampleworkbook.xlsm").Sheets("examplesheet").Range("A1:C33").Copy
With WordApp
.Visible = True
.Activate
Set WordDoc = .Documents.Add
.Selection.PasteSpecial Link:=False, DataType:=wdPasteRTF, _
Placement:=wdInLine, DisplayAsIcon:=False
End With
With Application
.Wait (Now + TimeValue("0:00:02"))
.CutCopyMode = False
End With
With WordDoc
.PageSetup.TopMargin = WordApp.CentimetersToPoints(1.4)
.PageSetup.LeftMargin = WordApp.CentimetersToPoints(1.5)
.PageSetup.BottomMargin = WordApp.CentimetersToPoints(1.5)
.SaveAs "F:documents" & Year(Date) & "examplename " & Format(Now, "YYYYMMDD") & ".docx"
.Close
End With
' export sheet 2 to Word
Workbooks("exampleworkbook.xlsm").Sheets("examplesheet2").Range("A1:C33").Copy
Set WordDoc = WordApp.Documents.Add
WordApp.Selection.PasteSpecial Link:=False, DataType:=wdPasteRTF, _
Placement:=wdInLine, DisplayAsIcon:=False
Application.Wait (Now + TimeValue("0:00:02"))
With WordDoc
.PageSetup.LeftMargin = WordApp.CentimetersToPoints(1.5)
.PageSetup.TopMargin = WordApp.CentimetersToPoints(1.4)
.PageSetup.BottomMargin = WordApp.CentimetersToPoints(1.5)
.SaveAs "F:files" & Year(Date) & "name" & Format(Now, "YYYYMMDD") & ".docx"
.Close
End With
Application.CutCopyMode = False
WordApp.Quit
Set WordDoc = Nothing
Set WordApp = Nothing
' Variables Outlook
Dim objOutlook As Outlook.Application
Dim objMail As Outlook.MailItem
Dim rngTo As Excel.Range
Dim rngCc As Excel.Range
Dim rngSubject As Excel.Range
Dim rngBody As Excel.Range
Dim rngAttach1 As Excel.Range
Dim rngAttach2 As Excel.Range
Dim numSend As Integer
On Error Resume Next
Set objOutlook = GetObject(, "Outlook.Application")
If Err.Number > 0 Then Set objOutlook = CreateObject("Outlook.Application")
On Error GoTo 0
Set objMail = objOutlook.CreateItem(0)
' Outlook
On Error GoTo handleError
With Sheets("Mail")
Set rngTo = .Range("B11")
Set rngCc = .Range("B12")
Set rngSubject = .Range("B13")
Set rngBody = .Range("B14")
Set rngAttach1 = .Range("B15")
Set rngAttach2 = .Range("B16")
End With
With objMail
.To = rngTo.Value
.Subject = rngSubject.Value
.CC = rngCc.Value
'.Body = rngBody.Value
.Body = "Hi," & _
vbNewLine & vbNewLine & _
rngBody.Value & _
vbNewLine & vbNewLine & _
"Kind regards,"
.Attachments.Add rngAttach1.Value
.Attachments.Add rngAttach2.Value
.Display
Application.Wait (Now + TimeValue("0:00:01"))
Application.SendKeys "%s"
' .Send ' Instead of .Display, you can use .Send to send the email _
or .Save to save a copy in the drafts folder
End With
numSend = numSend + 1
GoTo skipError
handleError:
numErr = numErr + 1
oFile.WriteLine "*** ERROR *** Email for account" & broker & " not sent. Error: " & Err.Number & " " & Err.Description
skipError:
On Error GoTo 0
MsgBox "Sent emails: " & numSend & vbNewLine & "Number of errors: " & numErr, vbOKOnly + vbInformation, "Operation finished"
GoTo endProgram
cancelProgram:
MsgBox "No mails were sent.", vbOKOnly + vbExclamation, "Operation cancelled"
endProgram:
Set objOutlook = Nothing
Set objMail = Nothing
Set rngTo = Nothing
Set rngSubject = Nothing
Set rngBody = Nothing
Set rngAttach1 = Nothing
Set rngAttach2 = Nothing
End Sub
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 |
Private Function funOutputWord(strPathDot As String, strPathWord As String, arr_data As Variant, cnt_rows As Variant) As Boolean ' '-------------------------------------------------------------------------- Dim objWord As Word.Application Dim objDoc As Word.Document Dim DlgUser As Integer Dim myTable As Word.Table Dim objRange As Object On Error GoTo 0 Set objWord = New Word.Application If Dir(strPathWord) <> "" Then DlgUser = MsgBox("Документ с таким именем ранее уже был создан. Заменить его?", vbYesNo, "admin") Select Case DlgUser Case vbNo objWord.Documents.Open strPathWord GoTo funOutputWord_End Case Else Kill strPathWord End Select End If 'Открываем НОВЫЙ документ сформированный по заданному шаблону Set objDoc = objWord.Documents.Add(strPathDot) Set myTable = objWord.Selection.Range.Tables.Add(objDoc.Bookmarks("таблица").Range, cnt_rows, 6) With myTable .AutoFormat 16 .Columns(1).Width = CentimetersToPoints(1.19) .Columns(2).Width = CentimetersToPoints(2.75) .Columns(3).Width = CentimetersToPoints(2.25) .Columns(4).Width = CentimetersToPoints(6.75) .Columns(5).Width = CentimetersToPoints(3) .Columns(6).Width = CentimetersToPoints(2.79) For i = 1 To 6 myTable.Cell(1, i).Range.ParagraphFormat.Alignment = 1 myTable.Cell(1, i).Range.Cells.VerticalAlignment = 1 ' строка заголовков - жирным myTable.Cell(1, i).Range.Bold = True Next i myTable.Cell(1, 1).Range.Text = "№ п/п" myTable.Cell(1, 2).Range.Text = "Столбик 2" myTable.Cell(1, 3).Range.Text = "Столбик 3" myTable.Cell(1, 4).Range.Text = "Столбик 4" myTable.Cell(1, 5).Range.Text = "Столбик 5" myTable.Cell(1, 6).Range.Text = "Столбик 6" For i = 1 To UBound(arr_data) For j = 0 To UBound(arr_data, 2) If i = 1 Then myTable.Cell(j + 2, i).Range.Text = arr_data(i, j) & "." Else myTable.Cell(j + 2, i).Range.Text = arr_data(i, j) End If Select Case i Case 1, 4, 5, 6 ' от левого myTable.Cell(j + 2, i).Range.ParagraphFormat.Alignment = 0 Case 2 ' центр myTable.Cell(j + 2, i).Range.ParagraphFormat.Alignment = 1 Case 3 ' от правого myTable.Cell(j + 2, i).Range.ParagraphFormat.Alignment = 2 End Select myTable.Cell(j + 2, i).Range.Cells.VerticalAlignment = 1 Next j Next i '.SaveAs strPathWord End With funOutputWord = True funOutputWord_End: On Error Resume Next objWord.Visible = True objWord.Activate Set myTable = Nothing Set objRange = Nothing Set objDoc = Nothing Set objWord = Nothing Err.Clear Exit Function funOutputWord_Err: funOutputWord = False MsgBox "Error: " & Err.Number & vbCrLf & Err.Description & vbCrLf & _ "in Function: funOutputWord in module: Form_Form1", vbCritical, "Error in Application" Err.Clear Resume funOutputWord_End End Function |
Номер ошибки: | Ошибка во время выполнения 462 | |
Название ошибки: | The remote server machine does not exist or is unavailable | |
Описание ошибки: | The CreateObject function requires a valid server. | |
Разработчик: | Microsoft Corporation | |
Программное обеспечение: | Windows Operating System | |
Относится к: | Windows XP, Vista, 7, 8, 10, 11 |
Определение «The remote server machine does not exist or is unavailable»
«The remote server machine does not exist or is unavailable» — это стандартная ошибка времени выполнения. Программисты работают через различные уровни отладки, пытаясь убедиться, что Windows Operating System как можно ближе к безошибочным. Хотя эти превентивные действия принимаются, иногда ошибки, такие как ошибка 462, будут пропущены.
В выпуске последней версии Windows Operating System может возникнуть ошибка, которая гласит: «The CreateObject function requires a valid server.». Если возникает ошибка 462, разработчикам будет сообщено об этой проблеме через уведомления об ошибках, которые встроены в Windows Operating System. Затем Microsoft Corporation может исправить эти ошибки в исходном коде и подготовить обновление для загрузки. Если есть уведомление об обновлении Windows Operating System, это может быть решением для устранения таких проблем, как ошибка 462 и обнаруженные дополнительные проблемы.
Что генерирует ошибку времени выполнения 462?
Ошибки выполнения при запуске Windows Operating System — это когда вы, скорее всего, столкнетесь с «The remote server machine does not exist or is unavailable». Следующие три наиболее значимые причины ошибок выполнения ошибки 462 включают в себя:
Ошибка 462 Crash — Ошибка 462 остановит компьютер от выполнения обычной программной операции. Это возникает, когда Windows Operating System не реагирует на ввод должным образом или не знает, какой вывод требуется взамен.
Утечка памяти «The remote server machine does not exist or is unavailable» — этот тип утечки памяти приводит к тому, что Windows Operating System продолжает использовать растущие объемы памяти, снижая общую производительность системы. Возможные искры включают сбой освобождения, который произошел в программе, отличной от C ++, когда поврежденный код сборки неправильно выполняет бесконечный цикл.
Ошибка 462 Logic Error — Логическая ошибка вызывает неправильный вывод, даже если пользователь дал действительные входные данные. Неисправный исходный код Microsoft Corporation может привести к этим проблемам с обработкой ввода.
Такие проблемы The remote server machine does not exist or is unavailable обычно вызваны повреждением файла, связанного с Windows Operating System, или, в некоторых случаях, его случайным или намеренным удалением. Как правило, решить проблему позволяет получение новой копии файла Microsoft Corporation, которая не содержит вирусов. В качестве дополнительного шага по устранению неполадок мы настоятельно рекомендуем очистить все пути к неверным файлам и ссылки на расширения файлов Microsoft Corporation, которые могут способствовать возникновению такого рода ошибок, связанных с The remote server machine does not exist or is unavailable.
Типичные ошибки The remote server machine does not exist or is unavailable
Обнаруженные проблемы The remote server machine does not exist or is unavailable с Windows Operating System включают:
- «Ошибка приложения The remote server machine does not exist or is unavailable.»
- «The remote server machine does not exist or is unavailable не является приложением Win32.»
- «Извините, The remote server machine does not exist or is unavailable столкнулся с проблемой. «
- «Не удается найти The remote server machine does not exist or is unavailable»
- «Отсутствует файл The remote server machine does not exist or is unavailable.»
- «Ошибка запуска в приложении: The remote server machine does not exist or is unavailable. «
- «Файл The remote server machine does not exist or is unavailable не запущен.»
- «Ошибка The remote server machine does not exist or is unavailable. «
- «Ошибка пути программного обеспечения: The remote server machine does not exist or is unavailable. «
Ошибки The remote server machine does not exist or is unavailable EXE возникают во время установки Windows Operating System, при запуске приложений, связанных с The remote server machine does not exist or is unavailable (Windows Operating System), во время запуска или завершения работы или во время установки ОС Windows. Документирование проблем The remote server machine does not exist or is unavailable в Windows Operating System является ключевым для определения причины проблем с электронной Windows и сообщения о них в Microsoft Corporation.
Истоки проблем The remote server machine does not exist or is unavailable
Проблемы Windows Operating System и The remote server machine does not exist or is unavailable возникают из отсутствующих или поврежденных файлов, недействительных записей реестра Windows и вредоносных инфекций.
Более конкретно, данные ошибки The remote server machine does not exist or is unavailable могут быть вызваны следующими причинами:
- Недопустимый The remote server machine does not exist or is unavailable или поврежденный раздел реестра.
- Вирус или вредоносное ПО, повреждающее The remote server machine does not exist or is unavailable.
- Другая программа (не связанная с Windows Operating System) удалила The remote server machine does not exist or is unavailable злонамеренно или по ошибке.
- Другое программное обеспечение, конфликтующее с Windows Operating System, The remote server machine does not exist or is unavailable или общими ссылками.
- Поврежденная установка или загрузка Windows Operating System (The remote server machine does not exist or is unavailable).
Продукт Solvusoft
Загрузка
WinThruster 2023 — Проверьте свой компьютер на наличие ошибок.
Совместима с Windows 2000, XP, Vista, 7, 8, 10 и 11
Установить необязательные продукты — WinThruster (Solvusoft) | Лицензия | Политика защиты личных сведений | Условия | Удаление
Permalink
Cannot retrieve contributors at this time
description | title | ms.date | f1_keywords | ms.assetid |
---|---|---|---|---|
Learn more about: The remote server machine does not exist or is unavailable (Visual Basic) |
The remote server machine does not exist or is unavailable |
07/20/2015 |
vbrID462 |
fa2cf36e-2169-42db-8449-6aca579e8303 |
The remote server machine does not exist or is unavailable (Visual Basic)
You are trying to connect to a remote server that is unavailable or does not exist. This error may be caused by your network connection being lost.
To correct this error
- Reconnect to the network and try again.
See also
- Error Types
- Remove From My Forums
-
Question
-
I have several modules that read and write data to and from Excel 2010 worksheets. I am noticing that the Excel process does not end aven though Excel is not running on my PC. It is like an orphan process. If I try running the Access module again I get the
message «error 462 — The remote server machine does not exist or is unavailable». Here is the code I am running. When I click the Debug button on the message box the line «rowNum = objXLAppln.Range(«A» & Rows.Count).End(xlUp).Row»
is highlighted.Option Compare Database Option Explicit Function ImportImportanceScores() Dim RecSet As DAO.Recordset Dim objXLAppln As Excel.Application Set objXLAppln = New Excel.Application Dim objWBook As Excel.Workbook Dim rowNum As Variant Dim i As Integer Dim j As Integer Dim StrPathFile As String, strFile As String, strPath As String Dim strBrowseMsg As String, strInitialDirectory As String, strFilter As String 'show dialogue box strBrowseMsg = "Select the EXCEL file:" 'set directory to load files from strInitialDirectory = "C:Bridge_CIP_Part-A_B" 'run strFilter function strFilter = ahtAddFilterItem(strFilter, "Excel Files (*.xlsx)", "*.xlsx") StrPathFile = ahtCommonFileOpenSave(InitialDir:=strInitialDirectory, _ Filter:=strFilter, OpenFile:=True, _ DialogTitle:=strBrowseMsg, _ Flags:=ahtOFN_HIDEREADONLY) If StrPathFile = "" Then MsgBox "No file was selected.", vbOK, "No Selection" Exit Function End If 'Set Excel application object. Critical for macro to run properly. Do not change. 'Open workbook and worksheet to load data. With objXLAppln Set objWBook = objXLAppln.Workbooks.Open(StrPathFile) objXLAppln.Visible = True End With Set RecSet = CurrentDb.OpenRecordset("Importance_Scores") 'Copy data from Excel cells to Access fields objXLAppln.Sheets("Importance_Scores").Select rowNum = objXLAppln.Range("A" & Rows.Count).End(xlUp).Row objXLAppln.Range("A6").Select 'Add records to table from Excel With RecSet For i = 0 To rowNum - 6 RecSet.AddNew RecSet.Fields("CIP_ID").value = objXLAppln.ActiveCell.Offset(i, 0).value RecSet.Fields("Target_Timeframe_for_Construction").value = objXLAppln.ActiveCell.Offset(i, 2).value RecSet.Fields("ImportanceFactor_TI-1").value = objXLAppln.ActiveCell.Offset(i, 21).value RecSet.Fields("ImportanceFactor_TI-2").value = objXLAppln.ActiveCell.Offset(i, 22).value RecSet.Fields("ImportanceFactor_TI-3").value = objXLAppln.ActiveCell.Offset(i, 23).value RecSet.Fields("ImportanceFactor_TI-4").value = objXLAppln.ActiveCell.Offset(i, 24).value RecSet.Fields("ProjectRank").value = objXLAppln.ActiveCell.Offset(i, 33).value RecSet.Update Next i End With 'Close everything RecSet.Close objWBook.Close SaveChanges:=False objXLAppln.Quit Set RecSet = Nothing Set objWBook = Nothing Set objXLAppln = Nothing End Function
Answers
-
In the line
rowNum = objXLAppln.Range(«A» & Rows.Count).End(xlUp).Row
Rows does not refer to objXLAppln or to objWBook. Change it to
rowNum = objXLAppln.Range(«A» & objWBook.Sheets(«Importance_Scores«).Rows.Count).End(xlUp).Row
Regards, Hans Vogelaar (http://www.eileenslounge.com)
-
Marked as answer by
Wednesday, April 1, 2015 5:15 AM
-
Marked as answer by