Как сравнить данные с рабочего листа и работать с другим? - PullRequest
0 голосов
/ 06 июня 2019

Я работаю над макросом, который классифицирует данные по разным группам (для упрощения, скажем, каждый случай, кроме одного, состоит из двух строк), когда вносится изменение в первый ряд группы, которую я хочумакрос для идентификации с делом, с которым я первоначально имел дело, и адаптации данных к формату «нового» дела, однако информацию об изменениях, которые были применены, можно найти в одном рабочем листе (LogDetails), а также информацию, которая мне нужна, чтобы определить, какой именноисходный случай находится в другом листе (20190328)

Проблема в предложении сравнения в условии IF, потому что я хочу знать содержание двух разных ячеек в двух разных листах, чтобы определить действия

  • У меня уже есть код для отслеживания изменений и сохранения их на листе

  • Код, который я написал для адаптации данных к новому формату дела, должен работатьесли я смогу решить эту проблему (на самом деле еще не смог ее проверить)


Option Explicit

Sub apply_case_change()
    Dim lRow As Integer
    Dim k1 As Integer
    Dim c1 As Integer
    Dim row_counter As Integer

    lRow = Worksheets("LogDetails").Cells(Rows.Count, 1).End(xlUp).Row 'Find the last non-blank cell in column A(1)

    For k1 = 2 To lRow
    row_counter = Worksheets("LogDetails").Cells(k1, 8).Value 'Counter for visible sheet
        If Worksheets("LogDetails").Cells(k1, 9).Value = 28 Then
            '----Case 1
            If Worksheets("LogDetails").Cells(k1, 2).Value = "FB" And Worksheets("20190328").Cells(row_counter, 37).Value = "Kaufteil mit Beistellung" Then
                Worksheets("LogDetails").Cells(k1, 10).Value = 1
                Worksheets("LogDetails").Cells(k1, 11).Value = 2
            ElseIf Worksheets("LogDetails").Cells(k1, 2).Value = "FB" And IsEmpty(Worksheets("20190328").Cells(row_counter, 37).Value) = False Then
                Worksheets("LogDetails").Cells(k1, 10).Value = 1
                Worksheets("LogDetails").Cells(k1, 11).Value = 3

            ElseIf Worksheets("LogDetails").Cells(k1, 2).Value = "FB" And IsEmpty(Worksheets("20190328").Cells(row_counter + 1, 28).Value) = True Then
                Worksheets("LogDetails").Cells(k1, 10).Value = 1
                Worksheets("LogDetails").Cells(k1, 11).Value = 4
            End If
        End If
    Next k1


'_____________________________________ CASE 4


    For k1 = 3 To lRow
        c1 = Worksheets("LogDetails").Cells(k1, 8).Value 'ROW Counter for visible sheet
        If Worksheets("LogDetails").Cells(k1, 10).Value = 1 And Worksheets("LogDetails").Cells(k1, 11).Value = 4 Then
            'CHANGE FROM 1 to 4
            Worksheets("20190328").Cells(c1 + 1, 39).Value = Worksheets("20190328").Cells(c1, 28).Value 'Copy xxx number
            Worksheets("20190328").Cells(c1 + 1, 28).Value = "HZ" 'Update Typ Column
            Worksheets("20190328").Cells(c1 + 1, 53).Value = 4 'Update tag
            c1 = c1 + 1 'So we skip the whole set (EACH CASE 1 CONTAINS 2 LINES, one after the other)

        ElseIf Worksheets("LogDetails").Cells(k1, 10).Value = 2 And Worksheets("LogDetails").Cells(k1, 11).Value = 4 Then
            'CHANGE FROM 2 to 4
            Worksheets("20190328").Cells(c1 + 1, 39).Value = Worksheets("20190328").Cells(c1, 28).Value 'Copy xxx number
            Worksheets("20190328").Cells(c1, 37).ClearContents 'Clears Koop Column
            Worksheets("20190328").Cells(c1 + 1, 28).Value = "HZ" 'Update Typ Column
            Worksheets("20190328").Cells(c1 + 1, 53).Value = 4 'Update tag
            c1 = c1 + 1 'So we skip the whole set (EACH CASE 1 CONTAINS 2 LINES, one after the other)

        ElseIf Worksheets("LogDetails").Cells(k1, 10).Value = 3 And Worksheets("LogDetails").Cells(k1, 11).Value = 4 Then
            'CHANGE FROM 3 to 4
            Worksheets("20190328").Cells(c1 + 1, 39).Value = Worksheets("20190328").Cells(c1, 28).Value 'Copy xxx number
            Worksheets("20190328").Cells(c1 + 1, 28).Value = "HZ" 'Update Typ Column
            Worksheets("20190328").Cells(c1, 37).ClearContents 'Clears Koop Column
            Worksheets("20190328").Cells(c1 + 1, 53).Value = 4 'Update tag
            c1 = c1 + 1 'So we skip the whole set (EACH CASE 1 CONTAINS 2 LINES, one after the other)
        End If
    Next k1
End sub

Я ожидаю, что на самом деле сработает следующий тип сравнений:

If Worksheets("LogDetails").Cells(k1, 3).Value = "FB" And Worksheets("20190328").Cells(row_counter + 1, 28).Value = "HZ Beistellung" Then

Пока ошибок не возникло

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...