Копирование из двух книг - VBA

Узнай цену своей работы

Формулировка задачи:

Добрый день форум. Требуется ваша помощь, надеюсь только на вас. Суть такая, началась практика после колледжа на завод попал. Дали задание по Vba, давали нам его мало, с отговоркой "вам оно не надо". Задание такое: есть две книги, необходимо сверив столбцы А книги 1 и книги 2 , скопировать столбец В из 1ой книги во вторую. При этом убрав два последних символа из ячейки. 1.5 недели изучения самостоятельного привели к следующим результатам(мой код ниже). Результат появляется хоть и с ошибкой, но возникла другая проблема,когда я копирую код в книги с которыми нужно предоставить результат, кроме ошибки результат нет ни какого. Сам пробую все написать в книгах которые создал сам, как пробники. Меньше листов и так далее. Очень надеюсь на вашу помощь, так как больше не куда обратиться.Заранее спасибо.Прикрепил только файл в который должно копироваться из книги1, тк не могу прикреплять xlsm.
Листинг программы
  1. Sub lol()
  2. Dim s As Object
  3. Set k1 = Workbooks.Open("I:\Проба\123.xlsx")
  4. LastRow = ThisWorkbook.ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
  5. LastRow1 = k1.Worksheets("Лист1").Cells(Rows.Count, 1).End(xlUp).Row
  6. For i = 1 To LastRow
  7. For j = 1 To LastRow1
  8. If ThisWorkbook.ActiveSheet.Cells(i, 1) = k1.Worksheets("Лист1").Cells(j, 1) Then
  9. k1.ActiveSheet.Cells(j, 2) = ThisWorkbook.ActiveSheet.Cells(i, 2)
  10. End If
  11. Next j
  12. Next i
  13. For Each s In k1.Worksheets("Лист1").Range("B1:B950").Cells
  14. s.Value = Left(s, Len(s) - 2)
  15. Next s
  16. End Sub

Решение задачи: «Копирование из двух книг»

textual
Листинг программы
  1. Sub Perenos()
  2. Dim Last1 As Long, Last2 As Long, I As Long, J As Long
  3. Dim S, OB1 As Object, OB2 As Object
  4. Set OB1 = Workbooks(1).Sheets(1)
  5. Set OB2 = Workbooks(2).Sheets(1)
  6. Last1 = OB1.Cells.SpecialCells(xlCellTypeLastCell).Row
  7. Last2 = OB2.Cells.SpecialCells(xlCellTypeLastCell).Row
  8. For I = 1 To Last1
  9.   S = OB1.Cells(I, 1)
  10.   For J = 1 To Last2
  11.     If S = OB2.Cells(J, 1) Then
  12.       OB2.Cells(J, 2) = Left(OB1.Cells(I, 2), Len(OB1(Cells(I, 2)) - 2))
  13.       Exit For
  14.     End If
  15.   Next
  16. Next
  17. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.083 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы