Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.06.2016, 14:16   #1
Naturale
Новичок
Джуниор
 
Регистрация: 28.06.2016
Сообщений: 19
Восклицание Два листа с данными. Сравнить остатки на листе 1 и 2.

Срочно нужна помощь в VBA по данному заданию: "Два листа с данными. Сравнить остатки на листе 1 и 2. Выделить цветом ячейки, где не произошло изменений. Сумма изменений по столбцу в документ WORD " Сумма произведенных погашений составляет ….""
Вложения
Тип файла: xlsx 1.xlsx (10.7 Кб, 6 просмотров)
Naturale вне форума Ответить с цитированием
Старый 28.06.2016, 14:56   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Код:
Sub compare()
    Dim s1 As Worksheet, s2 As Worksheet
    Dim lastRow As Long, diff As Long
    Dim i&
    Dim vTest As Variant
    Set s1 = Sheets(1)
    Set s2 = Sheets(2)
    lastRow = s1.Range("A5000").End(xlUp).Row
    diff = 0
    For i = 1 To lastRow
        vTest = Application.WorksheetFunction.VLookup(s1.Cells(i, 1), s2.Range("A:B"), 2, 0)
        If Not IsError(vTest) Then
            If Cells(i, 2) = vTest Then
                s1.Cells(i, 1).Interior.ColorIndex = 6

            Else
                s1.Cells(i, 1).Interior.ColorIndex = 0
                diff = diff + (Cells(i, 2) - vTest)

            End If
        End If
    Next
    MsgBox "Сумма произведенных погашений составляет : " & Format(diff, "#,##0.00") & chr(13) & "Нужен WORD - Гугли"
    Set s1 = Nothing
    Set s2 = Nothing

End Sub
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 28.06.2016, 15:06   #3
Naturale
Новичок
Джуниор
 
Регистрация: 28.06.2016
Сообщений: 19
По умолчанию

А за отдельную плату можно все подробно расписать и с вордом? Я считал, что нужно найти ячейки, в которых изменились суммы, а не именно ячейки, которые просто поменялись
Naturale вне форума Ответить с цитированием
Старый 28.06.2016, 15:10   #4
Naturale
Новичок
Джуниор
 
Регистрация: 28.06.2016
Сообщений: 19
По умолчанию

Спасибо большое... Неужели это так просто делается?
Naturale вне форума Ответить с цитированием
Старый 28.06.2016, 15:29   #5
Naturale
Новичок
Джуниор
 
Регистрация: 28.06.2016
Сообщений: 19
По умолчанию

Так вы поможете?
Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
Код:
Sub compare()
    Dim s1 As Worksheet, s2 As Worksheet
    Dim lastRow As Long, diff As Long
    Dim i&
    Dim vTest As Variant
    Set s1 = Sheets(1)
    Set s2 = Sheets(2)
    lastRow = s1.Range("A5000").End(xlUp).Row
    diff = 0
    For i = 1 To lastRow
        vTest = Application.WorksheetFunction.VLookup(s1.Cells(i, 1), s2.Range("A:B"), 2, 0)
        If Not IsError(vTest) Then
            If Cells(i, 2) = vTest Then
                s1.Cells(i, 1).Interior.ColorIndex = 6

            Else
                s1.Cells(i, 1).Interior.ColorIndex = 0
                diff = diff + (Cells(i, 2) - vTest)

            End If
        End If
    Next
    MsgBox "Сумма произведенных погашений составляет : " & Format(diff, "#,##0.00") & chr(13) & "Нужен WORD - Гугли"
    Set s1 = Nothing
    Set s2 = Nothing

End Sub
Naturale вне форума Ответить с цитированием
Старый 28.06.2016, 16:00   #6
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

С чем конкретно?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 28.06.2016, 16:23   #7
Naturale
Новичок
Джуниор
 
Регистрация: 28.06.2016
Сообщений: 19
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
С чем конкретно?
С описанием кода?
Public Sub DocWrite()
Dim oWord As Object
Dim oDoc As Object
Set oWord = CreateObject("Word.Application")
Set oDoc = oWord.Documents.Add()
oWord.Visible = True
oDoc.Activate
With oWord.Selection
.TypeText "Сумма произведенных погашений составляет: " & Format(diff, "#,##0.00")
End With
End Sub
Так я описал вывод в ворд, но он не выводит сумму...
Naturale вне форума Ответить с цитированием
Старый 28.06.2016, 16:40   #8
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

опиши diff глобальной или же передавай ее как параметр
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 28.06.2016, 16:46   #9
Naturale
Новичок
Джуниор
 
Регистрация: 28.06.2016
Сообщений: 19
По умолчанию

Всё, получилось, спасибо большое за помощь!!!
Naturale вне форума Ответить с цитированием
Старый 28.06.2016, 16:54   #10
Naturale
Новичок
Джуниор
 
Регистрация: 28.06.2016
Сообщений: 19
По умолчанию

Можно ещё попросить с одним заданием? Буду безумно благодарен!
Суть задания: "Подбор параметров и построение графика. Значение в столбце 3 должно быть равно значению в столбце 2. Изменяется значение в стобце 5. Построить линейный график выручки. Результаты вывести в документ Word"
Вложения
Тип файла: xlsx 2.xlsx (39.6 Кб, 4 просмотров)
Naturale вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заполнение листа данными с другого листа. Pasha_Z Microsoft Office Excel 6 17.01.2014 20:01
работа на одном листе с данными из LISTBOX, данные на другом листе konstantin1990 Microsoft Office Excel 3 22.07.2013 15:15
Сравнить рядом два листа одной книги servtit Microsoft Office Excel 4 20.06.2012 15:07
Два листа - два события, одновременность срабатывания двух макросов strannick Microsoft Office Excel 20 03.04.2012 16:49
Сравнить 2 листа по 3 столбцам Syldys Microsoft Office Excel 10 20.07.2011 20:53