Как объединить данные в одну и ту же ячейку на основе массива или в разных ячейках, которые уже сохранены? - PullRequest
0 голосов
/ 21 февраля 2020

Как поместить несколько значений из разных ячеек (например, значения, которые лежат ниже заголовков x rel и y rel, ранее полученных моей программой) и поместить их в ту же ячейку, которая находится в той же строке, что и устройство d? (Не вручную выберите в Excel или выборочно, используя кодирование). Что мой текущий код делает, так это обнаруживает, что значения надежности x и y терпят неудачу, затем сохраняют их в массиве (не уверен, правильно это или нет), но после этого как объединить их в той же ячейке, показанной в «После»?

Public Sub FindAndConvertforreliabilityfails()
Dim i As Integer
Dim j As Integer
Dim lastRow     As Long
Dim myRng       As Range
Dim mycell      As Range
Dim MyColl      As Collection
Dim myIterator  As Variant
Set MyColl = New Collection
Dim xpos As integr, ypos As Integer

MyColl.Add "x rel"
MyColl.Add "y rel"
Dim LastCol As Integer
LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
For i = 1 To LastCol
For j = 1 To lastRow

For Each myIterator In MyColl
Do While Sheets(1).Cells(1, j).Value <> ""
If Sheets(1).Cells(1, i).Value = myIterator Then
xpos(j) = Sheets(1).Cells(Rows.Count, 6).End(xlUp).Offset(1, 0)
Else
ypos(j) = Sheets(1).Cells(Rows.Count, 7).End(xlUp).Offset(1, 0)
End If
Loop
Next
Next

' how to continue from here for the concatenate portion?

End Sub

До enter image description here

После

enter image description here

В настоящее время

enter image description here

1 Ответ

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

Попробуйте это. Это даст вам ожидаемый результат.

Private Sub Test()
Dim output As Variant
Dim outputrow As Integer
output = ""
outputrow = 0
For i = 2 To 5 'change 5 to lastrow of F&G Column.
    If Cells(i, "B").Value = 0 Then
        output = output & "(" & Cells(i, "F").Value & "," & Cells(i, "G").Value & "),"
    Else
        Cells(i, "E") = Left(output, Len(output) - 1)
        output = "(" & Cells(i, "F").Value & "," & Cells(i, "G").Value & "),"
    End If
Next i
Cells(i, "E") = Left(output, Len(output) - 1)
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...