Я работаю над макросом, который классифицирует данные по разным группам (для упрощения, скажем, каждый случай, кроме одного, состоит из двух строк), когда вносится изменение в первый ряд группы, которую я хочумакрос для идентификации с делом, с которым я первоначально имел дело, и адаптации данных к формату «нового» дела, однако информацию об изменениях, которые были применены, можно найти в одном рабочем листе (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
Пока ошибок не возникло