VBA Excel Проверить столбцы, выполнить и обновить Excel - PullRequest
0 голосов
/ 03 февраля 2020

enter image description here

Привет, у меня есть следующие данные Excel, я хочу выполнять функции на основе данных столбцов следующим образом.

В Первый сценарий, код проверит Store Column, если нет похожих Store Number, он выполнит оставшуюся часть кода, а когда будет установлено значение sh, проверьте следующую строку и продолжить.

Сценарий «Код для первого» * ​​1015 *

i = 0
If Cells(2 + i, 1).Value <> "" Then 'This is to check if row have STO NO, if do, go to the next row.

    'Missing code to Check "the first row of Column Store to see if there are other rows of the same store."
    With session
        'Missing code to check "IF dont have, run this session"
        .findById("wnd[0]").maximize
        .findById("wnd[0]/tbar[0]/okcd").Text = "MIGO"
        .findById("wnd[0]").sendVKey 0
        .findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0006/subSUB_ITEMLIST:SAPLMIGO:0200/tblSAPLMIGOTV_GOITEM/ctxtGOITEM-MAKTX[1,0]").Text = Cells(7, 2).Value
        .findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0006/subSUB_ITEMLIST:SAPLMIGO:0200/tblSAPLMIGOTV_GOITEM/txtGOITEM-ERFMG[4,0]").Text = Cells(7, 4).Value
        .findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0006/subSUB_ITEMLIST:SAPLMIGO:0200/tblSAPLMIGOTV_GOITEM/ctxtGOITEM-LGOBE[6,0]").Text = "DMDV"
        .findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0006/subSUB_ITEMLIST:SAPLMIGO:0200/tblSAPLMIGOTV_GOITEM/ctxtGOITEM-NAME1[12,0]").Text = "2S98"
        .findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0006/subSUB_ITEMLIST:SAPLMIGO:0200/tblSAPLMIGOTV_GOITEM/ctxtGOITEM-UMLGOBE[27,0]").Text = "BORD"
        .findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0006/subSUB_ITEMLIST:SAPLMIGO:0200/tblSAPLMIGOTV_GOITEM/ctxtGOITEM-UMBAR[32,0]").Text = "CATNEW"
        .findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0006/subSUB_ITEMLIST:SAPLMIGO:0200/tblSAPLMIGOTV_GOITEM/ctxtGOITEM-UMBAR[32,0]").SetFocus
        .findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0006/subSUB_ITEMLIST:SAPLMIGO:0200/tblSAPLMIGOTV_GOITEM/ctxtGOITEM-UMBAR[32,0]").caretPosition = 6
        .findById("wnd[0]").sendVKey 0
    End With

Во втором сценарии, если найдены похожие Store Numbers, он будет выглядеть в колонку, если это по воздуху или по морю. Затем он выполнит тот же Магазин Номер и Режим отгрузки . Строки IE 3 и 4 будут выполнены в системе.

Код для второго сценария (полный код, включая первый сценарий)

i = 0
If Cells(2 + i, 1).Value = <> Then 'This is to check if row have STO NO, if do, go to the next row.

    'Missing code to Check "the first row of Column Store to see if there are other rows of the same store."
    With session
        'Missing code to check "IF dont have, run this session"
        .findById("wnd[0]").maximize
        .findById("wnd[0]/tbar[0]/okcd").Text = "MIGO"
        .findById("wnd[0]").sendVKey 0
        .findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0006/subSUB_ITEMLIST:SAPLMIGO:0200/tblSAPLMIGOTV_GOITEM/ctxtGOITEM-MAKTX[1,0]").Text = Cells(7, 2).Value
        .findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0006/subSUB_ITEMLIST:SAPLMIGO:0200/tblSAPLMIGOTV_GOITEM/txtGOITEM-ERFMG[4,0]").Text = Cells(7, 4).Value
        .findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0006/subSUB_ITEMLIST:SAPLMIGO:0200/tblSAPLMIGOTV_GOITEM/ctxtGOITEM-LGOBE[6,0]").Text = "DMDV"
        .findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0006/subSUB_ITEMLIST:SAPLMIGO:0200/tblSAPLMIGOTV_GOITEM/ctxtGOITEM-NAME1[12,0]").Text = "2S98"
        .findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0006/subSUB_ITEMLIST:SAPLMIGO:0200/tblSAPLMIGOTV_GOITEM/ctxtGOITEM-UMLGOBE[27,0]").Text = "BORD"
        .findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0006/subSUB_ITEMLIST:SAPLMIGO:0200/tblSAPLMIGOTV_GOITEM/ctxtGOITEM-UMBAR[32,0]").Text = "CATNEW"
        .findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0006/subSUB_ITEMLIST:SAPLMIGO:0200/tblSAPLMIGOTV_GOITEM/ctxtGOITEM-UMBAR[32,0]").SetFocus
        .findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0006/subSUB_ITEMLIST:SAPLMIGO:0200/tblSAPLMIGOTV_GOITEM/ctxtGOITEM-UMBAR[32,0]").caretPosition = 6
        .findById("wnd[0]").sendVKey 0
    End With

    'If have other rows with the same Store value come this session
    'Missing code to check "IF have same Store value,check the Shipment Mode Column if its by Air or Sea Then run those with only same Store and same Shipment Mode the following code"
    With session
        .findById("wnd[0]").maximize
        .findById("wnd[0]/tbar[0]/okcd").Text = "MIGO"
        .findById("wnd[0]").sendVKey 0
        .findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0006/subSUB_ITEMLIST:SAPLMIGO:0200/tblSAPLMIGOTV_GOITEM/ctxtGOITEM-MAKTX[1,0]").Text = Cells(7, 2).Value
        'Session codes are almost the same but if there are multiple rows of same rows and payment mode, i need to add the next row's Part No.
        .findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0006/subSUB_ITEMLIST:SAPLMIGO:0200/tblSAPLMIGOTV_GOITEM/txtGOITEM-ERFMG[4,0]").Text = Cells(7, 4).Value
        .findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0006/subSUB_ITEMLIST:SAPLMIGO:0200/tblSAPLMIGOTV_GOITEM/ctxtGOITEM-LGOBE[6,0]").Text = "DMDV"
        .findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0006/subSUB_ITEMLIST:SAPLMIGO:0200/tblSAPLMIGOTV_GOITEM/ctxtGOITEM-NAME1[12,0]").Text = "2S98"
        .findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0006/subSUB_ITEMLIST:SAPLMIGO:0200/tblSAPLMIGOTV_GOITEM/ctxtGOITEM-UMLGOBE[27,0]").Text = "BORD"
        .findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0006/subSUB_ITEMLIST:SAPLMIGO:0200/tblSAPLMIGOTV_GOITEM/ctxtGOITEM-UMBAR[32,0]").Text = "CATNEW"
        .findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0006/subSUB_ITEMLIST:SAPLMIGO:0200/tblSAPLMIGOTV_GOITEM/ctxtGOITEM-UMBAR[32,0]").SetFocus
        .findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0006/subSUB_ITEMLIST:SAPLMIGO:0200/tblSAPLMIGOTV_GOITEM/ctxtGOITEM-UMBAR[32,0]").caretPosition = 6
        .findById("wnd[0]").sendVKey 0
    End With
i = i + 1

End Sub

К концу функции, я добавлю строку кода, чтобы обновить STO NO , чтобы выполняемые не будут выполняться снова.

Моя проблема:

Мне нужна помощь с пропущены коды о том, как проверять строки, если столбец Store имеет то же значение или нет, тогда выполнение кодов. И если такое же значение Режим хранения и отгрузки , как добавить в мой код информацию о нескольких Деталь № ? Кроме того, если одно и то же значение Режим хранения и отгрузки как мне обновить STO NO во всех строках? ( Примечание : После выполнения кодов сеансов я буду в состоянии получить STO NO и эти строки будут иметь одинаковые STO NO , поэтому я хочу обновить их все)

Я знаю, что мое объяснение Это немного грязно, но я не могу найти лучший способ объяснить это. Пожалуйста, дайте мне знать, если у вас есть какие-либо вопросы! Также я надеюсь, что кто-то может помочь мне с этим, поскольку это связано с моей работой.

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