VBA, чтобы получить одинаковое значение из другого места - PullRequest
0 голосов
/ 18 октября 2018

Это то, чего я сейчас пытаюсь достичь в этом проекте.В сценарии я определил элемент с нулевым запасом в желтом цвете местоположения, мне нужно найти сеть местоположений (данные извлекаются из основного источника данных) для того же элемента, категории, но я не хочу видетьЖелтое местоположение, потому что я уже знаю, желтый имеет нулевой инвентарь

введите описание изображения здесь

1 Ответ

0 голосов
/ 19 октября 2018

@ Радж, я не уверен, что ты имеешь в виду, но я пытаюсь создать код.

Лист 1

enter image description here

  1. Структура включает в себя поисковую систему (желтая область) и результаты)
  2. Вы просто импортируете данные в желтые поля
  3. , где выполняется код, стирая результаты, чтобы вывести новые.

Лист 2

enter image description here

Структура (включая базу данных)

Попробуйте:

Option Explicit

Sub Test()

    Dim LastRow2 As Long
    Dim i As Long
    Dim Mat_Cat_Loc As String
    Dim LastRow1 As Long

    With Sheet1

        If .Range("B2").Value = "" Or .Range("B3").Value = "" Or .Range("B4").Value = "" Then '<= if some search part missing end sub
            Exit Sub
        End If

        Mat_Cat_Loc = .Range("B2").Value & .Range("B3").Value & .Range("B4").Value ' <= Create Mat_Cat_Loc for the search product

        LastRow1 = .Range("A" & Rows.Count).End(xlUp).Row

        .Range("A8:D" & LastRow1).Clear '<= Clear range from the previous search

    End With

    With Sheet2

        LastRow2 = .Range("A" & Rows.Count).End(xlUp).Row

        For i = 3 To LastRow2 ' <= Loop in Sheet2 and if Mat_Cat_Loc (From the search) does not match Mat_Cat_Loc (From the data does not copy the line to Sheet1 Rsult Table)
            If (.Range("D" & i).Value <> Mat_Cat_Loc) And (.Range("C" & i).Value) <> Sheet1.Range("B4").Value Then
                With Sheet1
                    LastRow1 = .Range("A" & Rows.Count).End(xlUp).Row
                    .Range("A" & LastRow1 + 1).Value = Sheet2.Range("A" & i).Value
                    .Range("B" & LastRow1 + 1).Value = Sheet2.Range("B" & i).Value
                    .Range("C" & LastRow1 + 1).Value = Sheet2.Range("C" & i).Value
                    .Range("D" & LastRow1 + 1).Value = Sheet2.Range("D" & i).Value
                End With
            End If
        Next i
    End With

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