2010-06-23 8 views
0

j'ai un Excell remplir ces données qu'il contient:répéter une cellule dans d'autres cellules

Name1 
1 
2 
3 
Name2 
1 
2 
3 
4 
Name3 
1 
2 
...... 

Je veux avoir des noms dans une cellule en face de chaque ligne ci-dessous comme ceci:

1   Name1 
2   Name1 
3   Name1 
1   Name2 
2   Name2 
3   Name2 
4   Name2 
1   Name3 
2   Name3 
.... 

est-il un moyen de le faire?

+0

Quel type de données est dans les 1 2 3 cellules? Est-ce toujours le même type? Autrement dit, les données non nominatives seront-elles toujours une date, un nombre, etc.? – Michael

+0

tous sont texte – LIX

+0

Avez-vous un moyen de différencier Name1, Name2, etc. du reste des chaînes? – technomalogical

Répondre

1

Voici une façon d'aborder ce problème. Il fait certaines hypothèses que vous devrez peut-être corriger si elles s'avèrent fausses.

Dim n As String 
Dim v As String 

Dim row As Long 
Dim col As Integer 

Dim c As Range 

Dim destRow As Long 
Dim destCol As Integer 

'Assume your data is in column A, starting in row 1 
row = 1 
col = 1 

'and that you want to drop it into columns C and D starting in row 1 
destRow = 1 
destCol = 3 

Do 
    Set c = ActiveSheet.Cells(row, col) 
    If Left(c.Value, 4) = "Name" Then 
     n = c.Value 
    ElseIf n <> "" Then 
     Cells(destRow, destCol).Value = c.Value 
     Cells(destRow, destCol + 1).Value = n 
     destRow = destRow + 1 
    End If 
    row = row + 1 
Loop Until ActiveSheet.Cells(row, col).Value = "" 
+0

Je cherchais un autre moyen, mais ce script a fonctionné; merci – LIX

Questions connexes