Я хотел бы поблагодарить всех вас за ваш совет, после поиска кода ключа, чтобы узнать, как вернуть количество строк, заполненных в конкретной таблице, я нашел решение, и теперь я могу выполнить свою логику.Ниже мое решение для вышеуказанного вопроса.
Шаги:
- Создать переменную для хранения значений
- Переменная ниже будет содержатьвставленное значение необходимо обновить
- Переменная ниже будет содержать номер столбца версии элемента в таблице
- Переменная ниже будет содержать значение каждой строки в столбце [Get_Version_Item_Column], который будет использоватьсяпри сравнении значений каждой строки
- В приведенной ниже переменной будет храниться номер столбца хода выполнения элемента в таблице
- Переменная ниже будет содержать значение каждой строки в столбце [Get_Item_Progress_Column], которое должно бытьиспользуется при сравнении значений или каждой строки
- Переменная ниже используется для получения общего количества используемых строк в таблице
- Переменная ниже используется в качестве счетчика, чтобы запустить цикл для всехстроки
Создайте функцию, которая будет выполнять следующие действия в порядке:
Получить номер столбца из таблицы 1 Sheet1, где имя заголовка = [Исправлено в версии]
Получить номер столбца из таблицы 1 Sheet1, где имя заголовка = [Ход выполнения]
Выберите лист 2, чтобы получить значение, вставленное в ячейку B1
Получить вставленное значение из ячейки, расположенной внутри листа 2
Установить значение счетчика = 1, чтобы запустить цикл с первой строки после заголовка в таблице 1 Лист 1
Открыть во время цикла и установить условие, если счетчик <= Общее количество строк, выполняемых ниже </p>
Начинайте перемещение строки за строкой в таблице, используя метод Cells: Cells (counter, Get_Version_Item_Column) ', в методе клеток мы устанавливаем [Row]=> переменная счетчика, которая начинается со значения = 1, [Столбец] => Get_Version_Item_Column '
Получить значение второго столбца, который мы хотим поместить в условие, так же, как показано вШаг 7
Начать настройкуусловие usinf IF Else
If Get_Fixed_In_Version_Value = Get_Version_Inserted_Value And Get_Item_Progress_Value = "Approved" Тогда 'IF CORRECT NUMBER' DO что-то Example [Заменить значение в этой строке, этом столбце, этой ячейке наvalue = ""]
Else 'Делать что-либо еще
Добавить 1 к счетчику
Закройте цикл while
Код Решение:
Public Get_Version_Inserted_Value As String
Public Get_Version_Item_Column As Integer
Public Get_Fixed_In_Version_Value As String
Public Get_Item_Progress_Column As Integer
Public Get_Item_Progress_Value As String
Public QATotal_Items_Row As Integer
Public counter As Integer
Function Change_Version_Item_Progress() As String
Get_Version_Inserted_Value = ThisWorkbook.Worksheets("Sheet2").Range("B1").Value2
Get_Version_Item_Column = Application.Match("Fixed in Version", Sheets("Sheet1").Rows(1), 0)
Get_Item_Progress_Column = Application.Match("Item Progress", Sheets("Sheet1").Rows(1), 0)
Sheets(Sheet1).Select
QATotal_Items_Row = WorksheetFunction.CountA(Range("B:B")) - 1
counter = 1
While counter <= QATotal_Items_Row
Get_Fixed_In_Version_Value = ThisWorkbook.Worksheets("Sheet1").Range("Table1").Cells(counter, Get_Version_Item_Column).Value2
Get_Item_Progress_Value = ThisWorkbook.Worksheets("Sheet1").Range("Table1").Cells(counter, Get_Item_Progress_Column).Value2
If Get_Fixed_In_Version_Value = Get_Version_Inserted_Value And Get_Item_Progress_Value = "Approved" Then
Get_Item_Progress_Value = ThisWorkbook.Worksheets("Sheet1").Range("Table1").Cells(counter, Get_Item_Progress_Column).Value = "Delivered"
Else
Get_Item_Progress_Value = ThisWorkbook.Worksheets("Sheet1").Range("Table1").Cells(counter, Get_Item_Progress_Column).Value = Get_Item_Progress_Value
End If
counter = counter + 1
Wend
End Function
Надеюсь, что это поможет.
С уважением