Посадочная форма Powershell Parsing - PullRequest
0 голосов
/ 12 февраля 2020

У меня есть необходимость проанализировать файл Excel с одного листа "basi c" на более сложный лист, лист basi c предназначен для простого процесса ввода, введенные данные будут выглядеть следующим образом:


Basic Sheet (Input) - 
Full Name | Login ID | Agent Phone ID | Program |
Joe Blogs | JBloggs 1 | 12345 | Program 1
Fred Hughes | FHughes1 | 5678 | Program 2

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


Advanced Sheet (Parsed) - 
Full Name | Login ID | Agent Phone ID | Team |
Joe Blogs | JBloggs 1 | 12345 | Team 1
Joe Blogs | JBloggs 1 | 12345 | Team 2
Joe Blogs | JBloggs 1 | 12345 | Team 3
Joe Blogs | JBloggs 1 | 12345 | Team 4
Fred Hughes | FHughes1 | 5678 | Team Blue
Fred Hughes | FHughes1 | 5678 | Team Green
Fred Hughes | FHughes1 | 5678 | Team Orange

Этот поиск команды находится на отдельном листе (командах), который выглядит следующим образом:


Teams Sheet (Teams)-
Program | Teams | Security Roles |
Program 1 | Team 1 | Common
Program 1 | Team 2 | 
Program 1 | Team 3 | 
Program 1 | Team 4 | 
Program 2 | Team Blue |
Program 2 | Team Green |
Program 2 | Team Orange |

Процесс:

Вкладка «Basi c» заполнена затем скрипт анализирует Excel, чтобы заполнить вкладку «Дополнительно» («Разбор»), просматривая программу и возвращая команды для этой программы. Мне удалось установить переменную Program ($ Program), а затем я хочу Программа, которую нужно найти в листе команд, и команды для этой программы, которые должны быть указаны в расширенном листе.

Пока мой код выглядит следующим образом (по какой-то причине я не могу выделить l oop ):

    $SearchString = $Program  # This is the value that I will be searching for

    $Range = $sheet3.Range("A1").EntireColumn # This is the column to search

    $Search = $Range.find($SearchString)

    if ($Search -ne $null) {

                    $FirstAddress = $Search.Address

                    do {    
                            $target = $Search.offset(0,1)
                            $target.text
                            $export=$Target.text
                            $sheet2.Cells.Item($rowTeamS2+$i,$colTeamS2) = "$export"
                            $Search = $Range.FindNext($search)
                    } while ( $Search -ne $null -and $Search.Address -ne $FirstAddress)  
}  

Что происходит у мамы ent Я вижу:

Team 1
Team 2
Team 3
Team 4
Team 5
Team 6
Team 7
Team 8
Team 9
Team 10
Team 11
Team 12
Team 13
Team 14
Team 15
Team 16
Team 1
Team 2
Team 3
Team 4
Team 5
Team 6
Team 7
Team 8
Team 9
Team 10
Team 11
Team 12
Team 13
Team 14
Team 15
Team 16

Я также не вижу увеличения ячейки, поэтому одно и то же значение перезаписывается в той же ячейке команды.

К сожалению, я только начинаю вникать в Powershell, так что, может быть, какое-то кодирование "no nos" я делаю

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