Но так как на компьютере, где выполняется макрос установлен Excel 2003, эта операция невозможна. Помогите пожалуйста переделать код, чтобы лист сохранялся в Worde.
Сохранять в Word не так-то просто. Для этого надо сначала подключиться к самому Word. Далее надо будет вставить все данные листа. А потом самое сложное - отформатировать так, чтобы это вменяемо выглядело. Попробуйте просто скопировать всю необходимую инф-цию с листа Excel и вставить её на чистый лист Word. Если результат устроит - постараюсь накидать код.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
The_Prist написал: Попробуйте просто скопировать всю необходимую инф-цию с листа Excel и вставить её на чистый лист Word. Если результат устроит - постараюсь накидать код.
Сделал как вы сказали. Результат полностью устроил. Скопировал полностью лист Excel и вставил в Word
Sub SaveRangeToWord()
Dim objWrdApp As Object, objWrdDoc As Object
Dim pathS As String, IsAppClose As Boolean
Application.ScreenUpdating = False
'пытаемся подключится к Word
On Error Resume Next
Set objWrdApp = GetObject(, "Word.Application")
If objWrdApp Is Nothing Then
Set objWrdApp = CreateObject("Word.Application")
IsAppClose = True
'если надо сделать видимым - раскомментировать
'objWrdApp.Visible = True
End If
On Error GoTo 0
If objWrdApp Is Nothing Then
MsgBox "Не удалось подключиться к Word"
Application.ScreenUpdating = True
Exit Sub
End If
Set objWrdDoc = objWrdApp.Documents.Add
pathS = "\\192.168.64.33\Quality\10-ТЕСТЫ ПРОИЗВОДСТВО\Архив рапортов\"
objWrdDoc.SaveAs pathS & Year(Date) & "-" & Month(Date) & _
"-" & Day(Date) & " " & Hour(Time) & "." & _
Minute(Time) & " Бригада " & Range("F5") & "-" & _
Range("F6") & ".doc"
Sheets("Рапорт").UsedRange.Copy
'вставляем скопированные ячейки в Word - в начала документа
objWrdDoc.Range(0).Paste
objWrdDoc.Close False
If IsAppClose Then
objWrdApp.Quit
End If
Set objWrdDoc = Nothing: Set objWrdApp = Nothing
Application.ScreenUpdating = True
End Sub
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Александр П. написал: у вас в 34ой строчке не опечатка ?
Нет, надо было просто строки местами поменять, что я забыл сделать
Код
Sub SaveRangeToWord()
Dim objWrdApp As Object, objWrdDoc As Object
Dim pathS As String, IsAppClose As Boolean
Application.ScreenUpdating = False
'пытаемся подключится к Word
On Error Resume Next
Set objWrdApp = GetObject(, "Word.Application")
If objWrdApp Is Nothing Then
Set objWrdApp = CreateObject("Word.Application")
IsAppClose = True
'если надо сделать видимым - раскомментировать
'objWrdApp.Visible = True
End If
On Error GoTo 0
If objWrdApp Is Nothing Then
MsgBox "Не удалось подключиться к Word"
Application.ScreenUpdating = True
Exit Sub
End If
Set objWrdDoc = objWrdApp.Documents.Add
Sheets("Рапорт").UsedRange.Copy
'вставляем скопированные ячейки в Word - в начала документа
objWrdDoc.Range(0).Paste
pathS = "\\192.168.64.33\Quality\10-ТЕСТЫ ПРОИЗВОДСТВО\Архив рапортов\"
objWrdDoc.SaveAs pathS & Year(Date) & "-" & Month(Date) & _
"-" & Day(Date) & " " & Hour(Time) & "." & _
Minute(Time) & " Бригада " & Range("F5") & "-" & _
Range("F6") & ".doc"
objWrdDoc.Close False
If IsAppClose Then
objWrdApp.Quit
End If
Set objWrdDoc = Nothing: Set objWrdApp = Nothing
Application.ScreenUpdating = True
End Sub
Не знаю что там не сохраняется и где именно эта диаграмма. Как вариант можно попробовать в обязательном порядке в крайней нижней правой ячейке от диаграммы поставить пробел и после этого выполнять макрос. Возможно, диаграмма полностью не попадает в рабочую область и именно поэтому не копируется. Но объекты при методе Copy с листа Excel могут не попадать в буфер обмена (наблюдал такое поведение на некоторых версиях).
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
The_Prist написал: Нет, надо было просто строки местами поменять, что я забыл сделать Код
Добрый день! При попытке использовать ваш код выгружается растянутая таблица без колонтитула. Можете подсказать, как сделать так, чтобы выгрузить лист целиком в Word, включая колонтитулы?
файл не смотрел, но колонтитулы вообще отдельная тема и их так же отдельно надо переносить. Копировать не получится. Не самая простая тема. Ну а про это
The_Prist написал: А потом самое сложное - отформатировать так, чтобы это вменяемо выглядело.
после переноса надо все подгонять под нужный Вам формат. Тоже не самое мое любимое занятие. Это надо делать уже в Word. Перенесите туда таблицу как есть и попробуйте отформатировать до нужного состояния руками. Если это будет просто(типа просто ужали её с краев) - значит вполне легко можно это записать макрорекордером ворда и подставить в код из Excel. А если там куча подстроек под размер - это уже совершенно отдельная тема и тоже не самая простая, возможно.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...