Сравнение строк и перенос значений, как осуществить? - VBA
Формулировка задачи:
Доброго времени суток ,
прошу разобраться в вопросе по циклам и сравнивании срок с переносом значений...
В одной папке находятся 2 книги:
-arc.xlsx - лист "Спецификация помещений" это исходная таблица для сравнения по столбцу ("Комментарии" с числовыми индексами)
-mec.xlsx - лист "Спецификация стен"- это таблица в которую требуется скопировать столбец "Площадь" (желтым выделено то что требуется от макроса) из файла arc.xlsx в зависимости от индекса столбца "Комментарии" в файле mec
пробовал так - не получается (кусок кода):
Листинг программы
- Sub UNION_RVT_shedules()
- Dim i&, j&, MyPath$, A, B
- MyPath = ActiveWorkbook.Path
- Application.ScreenUpdating = False
- With Workbooks.Open(Filename:=MyPath & "\arc_.xlsx", UpdateLinks:=0, ReadOnly:=True)
- A = .Worksheets("Спецификация помещений").UsedRange.Value
- .Close SaveChanges:=False
- End With
- With Workbooks.Open(Filename:=MyPath & "\mec_.xlsx", UpdateLinks:=0, ReadOnly:=False)
- B = .Worksheets("Спецификация стен").UsedRange.Value
- For i = 3 To UBound(A)
- k = 3
- For j = 3 To UBound(B)
- If B(j, 2) = A(i, 2) Then
- .Cells(k, 8) = A(j, 8)
- k = k + 1
- End If
- Next
- Next
- End With
Решение задачи: «Сравнение строк и перенос значений, как осуществить?»
textual
Листинг программы
- Sub UNION_RVT_shedules()
- Dim i&, ii&
- Dim MyPath$
- Dim A(), B()
- '----------------
- MyPath = ThisWorkbook.Path
- Application.ScreenUpdating = False
- With Workbooks.Open(Filename:=MyPath & "\arc_.xlsx", UpdateLinks:=0, ReadOnly:=True)
- A = .Worksheets("Спецификация помещений").UsedRange.Value
- .Close False
- End With
- With Workbooks.Open(Filename:=MyPath & "\mec_.xlsx", UpdateLinks:=0, ReadOnly:=False)
- With .Worksheets("Спецификация стен")
- B = .UsedRange.Value
- For ii = 3 To UBound(B)
- For i = 3 To UBound(A)
- If B(ii, 2) = A(i, 2) Then
- .Cells(ii, 8) = A(i, 8)
- End If
- Next
- Next
- End With
- End With
- Application.ScreenUpdating = True
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д