Макросом переносится в ворд таблица. Таблицы формируются разной высоты по автофильтру.
Поэтому количество строк для выделения всегда разное.
Вылетает ошибка. смысл ее ясен, где исправить - нет знаний.
Кстати, ошибка вылетает даже если прописать прямо 10 строку
re = appWD.ActiveDocument.Tables(1).Cell(10, 1).Range.End
Сам макрос
Sub В_DOC()
Dim appWD As Word.Application
Dim NamFil, strOutFileName As String
Dim rs, re As Range
Dim str As Double
' имя файла
NamFil = "Приложение " & Split(Range("E7"), Chr(34))(1) & " " & Range("E6") & " " & Range("I7")
' строк в ворде
str = Range("A1152")
Set appWD = CreateObject("Word.Application")
Range("A4:B1167").Copy
appWD.Documents.Add
appWD.ActiveDocument.Range.PasteExcelTable False, False, False
appWD.Visible = True
With appWD
.Selection.WholeStory
.Selection.Font.Name = "Times New Roman"
.Selection.Font.Size = 8
.Selection.Tables(1).Select
.Selection.Tables(1).AutoFitBehavior wdAutoFitWindow
'.Selection.Tables(1).Rows.HeightRule = wdRowHeightAuto
End With
With appWD.ActiveDocument.PageSetup
.LeftMargin = 25
.RightMargin = 25
.TopMargin = 25
.BottomMargin = 25
End With
' выделить нужные строки в ворде и задать их высоту
rs = appWD.ActiveDocument.Tables(1).Cell(6, 1).Range.Start
re = appWD.ActiveDocument.Tables(1).Cell(str + 6, 1).Range.End ' ошибка Object variable or With block variable not set
' здесь могу ошибаться
appWD.ActiveDocument.Range(rs, re).Select
appWD.ActiveDocument.Selection.Tables(1).Rows.HeightRule = wdRowHeightExactly
appWD.ActiveDocument.Selection.Tables(1).Rows.Height = 20
' сохраняем и закрываем
strOutFileName = "R:\" & NamFil & ".doc"
appWD.ActiveDocument.SaveAs Filename:=strOutFileName
appWD.ActiveDocument.Close
End Sub
Поэтому количество строк для выделения всегда разное.
Вылетает ошибка. смысл ее ясен, где исправить - нет знаний.
Кстати, ошибка вылетает даже если прописать прямо 10 строку
re = appWD.ActiveDocument.Tables(1).Cell(10, 1).Range.End
Сам макрос
Sub В_DOC()
Dim appWD As Word.Application
Dim NamFil, strOutFileName As String
Dim rs, re As Range
Dim str As Double
' имя файла
NamFil = "Приложение " & Split(Range("E7"), Chr(34))(1) & " " & Range("E6") & " " & Range("I7")
' строк в ворде
str = Range("A1152")
Set appWD = CreateObject("Word.Application")
Range("A4:B1167").Copy
appWD.Documents.Add
appWD.ActiveDocument.Range.PasteExcelTable False, False, False
appWD.Visible = True
With appWD
.Selection.WholeStory
.Selection.Font.Name = "Times New Roman"
.Selection.Font.Size = 8
.Selection.Tables(1).Select
.Selection.Tables(1).AutoFitBehavior wdAutoFitWindow
'.Selection.Tables(1).Rows.HeightRule = wdRowHeightAuto
End With
With appWD.ActiveDocument.PageSetup
.LeftMargin = 25
.RightMargin = 25
.TopMargin = 25
.BottomMargin = 25
End With
' выделить нужные строки в ворде и задать их высоту
rs = appWD.ActiveDocument.Tables(1).Cell(6, 1).Range.Start
re = appWD.ActiveDocument.Tables(1).Cell(str + 6, 1).Range.End ' ошибка Object variable or With block variable not set
' здесь могу ошибаться
appWD.ActiveDocument.Range(rs, re).Select
appWD.ActiveDocument.Selection.Tables(1).Rows.HeightRule = wdRowHeightExactly
appWD.ActiveDocument.Selection.Tables(1).Rows.Height = 20
' сохраняем и закрываем
strOutFileName = "R:\" & NamFil & ".doc"
appWD.ActiveDocument.SaveAs Filename:=strOutFileName
appWD.ActiveDocument.Close
End Sub