Mám teda export dát, ktorý vychádza v nasledujúcej podobe (dáta trvajú mesiac):
9/1/2014
Team Quantity
Tom 1
Jim 2
9/2/2014
Team Quantity
Tom 1
Jim 2
Dátum musím zhora ručne odstrániťkaždého riadku a vložiť ho do stĺpca, aby som z neho vytvoril kontingenčnú tabuľku. Existuje nejaký kód VBA, ktorý by mohol vziať dátum z horného riadku a vložiť ho do stĺpca takto:
Team Quantity Date
Tom 1 9/1/2014
Jim 2 9/1/2014 etc...
Team Quantity Date
Tom 1 9/2/2014
Jim 2 9/2/2014 etc...
Jediným problémom je, že počet riadkov, ktoré môžu byť v tíme, je každý mesiac variabilný. Nejaké návrhy?
odpovede:
0 pre odpoveď č. 1Tu je to, čo pre vás mám na základe malých informácií. Vytvoril som vám šablónu a takto to vyzerá.
Budete musieť otvoriť záložky, aby ste spustili program a ten druhý je miesto, kde ste vložili svoje dáta.
Takže ak sa pozriete na údaje, ktoré som vložil, všetko, čo by som musel urobiť, je ísť stlačiť tlačidlo spustenia a takto to bude vyzerať.
Takže tu je kód pre tlačidlo spustenia.
Sub btnRun()
"declare variables
Dim ToBeFound, strVar1, strVar2 As String
Dim rng As Range
ToBeFound = "Team"
"Activate and selete sheet1 than select A1
Sheets("DataTab").Activate
Range("A1").Activate
For x = 1 To 1000
Set rng = Cells.Find(What:=ToBeFound, LookIn:=xlValues, lookat:=xlWhole)
If IIf(rng Is Nothing, "", rng) = "" Then
MsgBox "Complete"
Exit Sub
Else
rng.Activate
ActiveCell.Value = "Team:"
ActiveCell.Offset(0, 2).Value = "Date"
strVar1 = ActiveCell.Offset(-1, 0).Value
ActiveCell.Offset(-1, 0).EntireRow.Delete
For i = 1 To 100
ActiveCell.Offset(1, 0).Activate
If ActiveCell.Value = "" Then
Exit For
Else
ActiveCell.Offset(0, 2).Value = strVar1
End If
Next i
End If
Next x
End Sub
A tu je šablóna so všetkým, čo je už hotové a hotové, všetko, čo musíte urobiť, je načítať údaje do karty údajov a spustiť tlačiť. http://speedy.sh/twvt3/Template.xlsm