Макрос сравнивающий таблицы на разных листах Excel - VB
Формулировка задачи:
Доброй ночи, всем!!!
Нужна помощь!
Есть две таблицы на разных листах. Необходимо из листа2 считывать информацию о наименовании дисциплины, это столбец "Наименование дисциплины" (Философия, Иностранный язык, и.т.д) и соответствующее количество часов, это столбец "Всего по ГОСу" и сравнивать с информацией на листе1, где также есть столбцы содержащие наименование дисциплины и количество часов. При не совпадении количества часов, выводить наименование дисциплины на лист3.
Ну вот, вроде всё! =)
Если кто-то знает как это сделать, подскажите пожалуйста!
Кстати, я там что-то пыталась делать, макрос Сравнение=)))
Буду очень благодарна!
Нужна помощь!
Есть две таблицы на разных листах. Необходимо из листа2 считывать информацию о наименовании дисциплины, это столбец "Наименование дисциплины" (Философия, Иностранный язык, и.т.д) и соответствующее количество часов, это столбец "Всего по ГОСу" и сравнивать с информацией на листе1, где также есть столбцы содержащие наименование дисциплины и количество часов. При не совпадении количества часов, выводить наименование дисциплины на лист3.
Ну вот, вроде всё! =)
Если кто-то знает как это сделать, подскажите пожалуйста!
Кстати, я там что-то пыталась делать, макрос Сравнение=)))
Буду очень благодарна!
Решение задачи: «Макрос сравнивающий таблицы на разных листах Excel»
textual
Листинг программы
<font color="blue">Option</font> <font color="blue">Explicit</font> <font color="blue">Sub</font> Сравнение() <font color="blue">Dim</font> temp$, temph$ <font color="blue">Dim</font> source_ <font color="blue">As</font> <font color="blue">Object</font>, target_ <font color="blue">As</font> <font color="blue">Object</font>, tocopy_ <font color="blue">As</font> <font color="blue">Object</font>, x <font color="blue">As</font> Range <font color="blue">Dim</font> iFirstAddress$, blank_cell <font color="blue">As</font> Range <font color="blue">Dim</font> cc <font color="blue">As</font> Range <font color="blue">Set</font> source_ = Sheets(<font color="darkblue"><b>2</b></font>) <font color="blue">Set</font> target_ = Sheets(<font color="darkblue"><b>1</b></font>) <font color="blue">Set</font> tocopy_ = Sheets(<font color="darkblue"><b>3</b></font>) <font color="blue">For</font> <font color="blue">Each</font> cc <font color="blue">In</font> source_.UsedRange.Columns(<font color="darkblue"><b>2</b></font>).Cells temp = WorksheetFunction.Trim(cc.Value) temph = WorksheetFunction.Trim(source_.Cells(cc.Row, <font color="darkblue"><b>5</b></font>).Value) <font color="blue">If</font> temp <> <font color="teal">""</font> <font color="blue">Then</font> <font color="blue">Set</font> x = target_.Columns(<font color="darkblue"><b>2</b></font>).Find(temp, LookIn:=xlValues, lookat:=xlPart, MatchCase:=True) <font color="blue">If</font> <font color="blue">Not</font> x <font color="blue">Is</font> <font color="blue">Nothing</font> <font color="blue">Then</font> iFirstAddress = x.Address <font color="blue">Do</font> <font color="blue">Set</font> x = target_.Columns(<font color="darkblue"><b>2</b></font>).FindNext(x) <font color="blue">If</font> WorksheetFunction.Trim(target_.Cells(x.Row, <font color="darkblue"><b>3</b></font>).Value) <> temph <font color="blue">Then</font> <font color="blue">Set</font> blank_cell = tocopy_.Cells(tocopy_.Range(<font color="teal">"a"</font> & Rows.Count).<font color="blue">End</font>(xlUp).Row + <font color="darkblue"><b>1</b></font>, <font color="darkblue"><b>1</b></font>) source_.Cells(cc.Row, <font color="darkblue"><b>2</b></font>).Copy blank_cell blank_cell.Offset(<font color="darkblue"><b>0</b></font>, <font color="darkblue"><b>1</b></font>).Value = WorksheetFunction.Trim(target_.Cells(x.Row, <font color="darkblue"><b>3</b></font>).Value) blank_cell.Offset(<font color="darkblue"><b>0</b></font>, <font color="darkblue"><b>2</b></font>).Value = temph <font color="blue">End</font> <font color="blue">If</font> <font color="blue">Loop</font> <font color="blue">While</font> <font color="blue">Not</font> x <font color="blue">Is</font> <font color="blue">Nothing</font> <font color="blue">And</font> x.Address <> iFirstAddress <font color="blue">Else</font> <font color="blue">Set</font> blank_cell = tocopy_.Cells(tocopy_.Range(<font color="teal">"a"</font> & Rows.Count).<font color="blue">End</font>(xlUp).Row + <font color="darkblue"><b>1</b></font>, <font color="darkblue"><b>1</b></font>) source_.Cells(cc.Row, <font color="darkblue"><b>2</b></font>).Copy blank_cell blank_cell.Offset(<font color="darkblue"><b>0</b></font>, <font color="darkblue"><b>3</b></font>).Value = <font color="teal">"Not Exist In Sheets1 Column2!"</font> <font color="blue">End</font> <font color="blue">If</font> <font color="blue">End</font> <font color="blue">If</font> <font color="blue">Next</font> <font color="blue">End</font> <font color="blue">Sub</font>
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д