По общему признанию, новичок в VBA. У меня есть файл Excel, который состоит из всех наших номеров деталей, разделенных символами «-», которые я написал для разбивки на более описательные фразы для создания меток. Я пытаюсь написать здесь код для циклического перебора различных типов номеров деталей, захвата отдельных ячеек в строке этой части # и копирования / вставки их в текстовый документ и сохранения слова doc в качестве имени части #. Как и раньше, он зацикливается, но захватывает всю информацию из разных диапазонов, а не только информацию из той же строки, что и деталь.
Код работает (помимо сохранения), если я изменяю диапазоны на 1 одну ячейку, нокак только у меня есть несколько ячеек в диапазонах, он начинает копировать все в диапазоне, а не только в строке той части, которую он должен зацикливать.
Sub exceltoword2()
Dim part As Range
Dim funct As Range
Dim finish As Range
Dim lever As Range
Dim backset As Range
Dim trim As Range
Set part = Range("A2:A5")
Set funct = Range("Q2:Q5")
Set finish = Range("R2:R5")
Set lever = Range("S2:S5")
Set backset = Range("T2:T5")
Set trim = Range("U2:U5")
Dim wdapp As Word.Application
Set wdapp = New Word.Application
Dim SaveName As String
Dim path As String
path = "C:\Users\bpickett\Desktop\Parts\"
For Each part In part 'Long list of part #'s that will be looped through with particular variables commented out as needed as I adjust range on part variable
With wdapp
.Visible = True
.Documents.Add
.Activate
part.Copy '********************************Part copied
.Selection.PasteSpecial
With .Selection '**********************Function copied
.Font.Name = "Calibri"
.Font.Size = 22
.TypeText "FUNCTION " '7 spaces
End With
funct.Copy
.Selection.PasteSpecial
With .Selection '**************************Finish
.Font.Name = "Calibri"
.Font.Size = 22
.TypeText "FINISH " '14 spaces
End With
finish.Copy
.Selection.PasteSpecial
With .Selection '***************************Backset
.Font.Name = "Calibri"
.Font.Size = 22
.TypeText "BACKSET " '10 spaces
End With
backset.Copy
.Selection.PasteSpecial
ActiveDocument.SaveAs2 path & part & ".docx"
End With
Next
End Sub
Код при запуске имеет правильную 1-ю часть, затем просто копирует весь диапазон Backset / Function / Finish под каждым, а не только одну ячейку в строке номера детали.