/ / Excel, divida uma célula em outras células específicas com base no valor da primeira célula - excel, vba, substituir, dividir, linha

Excel, divida uma célula em outras células específicas com base no valor da primeira célula - excel, vba, replace, split, row

Eu quero dividir uma célula com dados, em outras células, com base nos primeiros dados da célula original. Os dados da célula original se parecem com isto (todos na mesma célula):

Field95-4,Field97-4,Field98-0,Field100-2,Field103-0,Field105-3,Field107-4,Field109-4,Field110-2,Field111-0,Field112-0,Field113-192,Field114-87,Field115-0,Field116-0,Field117-60

Deve ser dividido por "," e descobri que poderia fazer isso com um script:

Private Sub CommandButton1_Click()
Dim X As Variant
X = Split(Range("A1").Value, ",")
Range("A1").Resize(UBound(X) - LBound(X) + 1).Value = Application.Transpose(X)
End Sub

Então o resultado é assim:

Field95-4
Field97-4
Field98-0
Field100-2
Field103-0
Field105-3
Field107-4
Field109-4
Field110-2
Field111-0
Field112-0
Field113-192
Field114-87
Field115-0
Field116-0
Field117-60

Agora ele deve procurar uma célula contendo o número do campo:

Existe uma célula contendo o texto: Field95 e um campo com Field97 etc. Em seguida, desejo substituir o texto pelo resultado: Field95 deve ser substituído por 4 e Field97 deve ser substituído por 4. etc.Este é o excel

Este deve ser o resultado final

Resultado final

Sei que é pedir muito, mas "tentamos muito e não consigo fazer funcionar."

Aguardo suas respostas. Agradecemos antecipadamente!

ATUALIZAR:

Este é um arquivo excel que eu carreguei, então você pode ver do que se trata minha pergunta. ligação

ATUALIZAÇÃO 2:

Talvez isso, combinado com uma instrução IF, pudesse ser usado?

Sub UpdateWhole()
With ActiveSheet.UsedRange
.Replace "A1", "System", xlWhole
.Replace "A2", "System", xlWhole
.Replace "A3", "System", xlWhole
.Replace "B1", "ACC", xlWhole
.Replace "B2", "ACC", xlWhole
End With
End Sub

Eu não sei se isso é uma opção?

Respostas:

1 para resposta № 1

E se:

Sub RedHawk()
Dim X As Variant
X = Split(Range("A1").Value, ",")
Range("A1").Resize(UBound(X) - LBound(X) + 1).Value = Application.Transpose(X)
For i = LBound(X) + 1 To UBound(X) + 1
Cells(i, 1).Value = Split(Cells(i, 1).Value, "-")(1)
Next i
End Sub