Учитывая, что у меня есть l oop моих рабочих листов, чтобы произвести некоторые данные, как сортировать эти данные более организованным способом? - PullRequest
0 голосов
/ 20 февраля 2020

Итак, как работает моя программа, так это то, что она будет проходить через все эти рабочие листы, чтобы найти недействительные / ошибочные данные, и после этого будет вставлен окончательный результат, начиная со строки 1, столбец A. Число / countini / countinv представляет число отн. / начальный / недействительный сбой соответственно. Давайте просто предположим, что у меня есть 4 рабочих листа, а именно: «devicea», «deviceb», «device c» и «deviced» для l oop on, чтобы получить число данных rel / initial / invalid fails (числа, показанные на крайний левый столбец А) на каждом листе. Как я могу извлечь имя листа, которое находится в той же ячейке, что и имя счетчика, например, если имя счетчика равно «rel» (в столбце A row5), как извлечь имя устройства листа не только для моего случая, но и для моего случая? для всех случаев и упорядочить их, как показано на рисунке после фрагмента изображения?

If Count >= 1 Then
Sheets(1).Cells(Rows.Count, 19).End(xlUp).Offset(1, 0) = Count & " REL Failures in " & ActiveSheet.Name & " !"

If countini >= 1 Then
Sheets(1).Cells(Rows.Count, 19).End(xlUp).Offset(1, 0) = countini & " Initial Failures in " & ActiveSheet.Name & " !"
end if

If countinv >= 1 Then
Sheets(1).Cells(Rows.Count, 19).End(xlUp).Offset(1, 0) = countinv & " Invalid Data points in " & ActiveSheet.Name & " !"
endif

'^ вышеупомянутый кусок строк используется для генерации вывода в столбце А. Просто нужно знать переменные; Количество = нет ошибок Rel, countini = нет исходных ошибок, countinv = нет недопустимых точек данных. Ну, ниже приведены коды, которые меня беспокоят, и мне нужна помощь для этого ..

Dim lastrow1 As Long

lastrow1 = Sheets(1).Range("A" & Rows.Count).End(xlUp).Row

For Row = 2 To lastrow1

mytext1 = Count & Sheets(1).Range("A" & Row).Value
' for the case of rel fails

If mytext1(2) = "rel" Then

'get the worksheetname that lies the same cell as "REL"
mytext1(4)=

enter image description here

1 Ответ

1 голос
/ 20 февраля 2020

Это то, что я имел в виду в своем комментарии, просто создайте таблицу одновременно с текстом слева. Я предполагаю, что Count / countini / countinv не пустые, а вместо 0? Если нет, вам нужно сделать заявление if или что-то в этом роде.

If Count >= 1 Then
Sheets(1).Cells(Rows.Count, 19).End(xlUp).Offset(1, 0) = Count & " REL Failures in " & ActiveSheet.Name & " !"
'You sure, you dont need an end if here?

If countini >= 1 Then
Sheets(1).Cells(Rows.Count, 19).End(xlUp).Offset(1, 0) = countini & " Initial Failures in " & ActiveSheet.Name & " !"
end if

If countinv >= 1 Then
Sheets(1).Cells(Rows.Count, 19).End(xlUp).Offset(1, 0) = countinv & " Invalid Data points in " & ActiveSheet.Name & " !"
endif

'This creates the table
Sheets(1).Cells(Rows.Count, 3).End(xlUp).Offset(1, 0) = ActiveSheet.Name

'edited in after your comment:
If Count Like "" Then Count = 0
If countini Like "" Then countini = 0
If countinv Like "" Then countinv = 0

Sheets(1).Cells(Rows.Count, 4).End(xlUp).Offset(1, 0) = Count
Sheets(1).Cells(Rows.Count, 5).End(xlUp).Offset(1, 0) = countini
Sheets(1).Cells(Rows.Count, 6).End(xlUp).Offset(1, 0) = countinv
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...