Mam więc eksport danych, które pojawiają się w następującym formularzu (daty trwają przez miesiąc):
9/1/2014
Team Quantity
Tom 1
Jim 2
9/2/2014
Team Quantity
Tom 1
Jim 2
Muszę ręcznie usunąć datę z górykażdej linii i umieść ją w kolumnie, dzięki czemu mogę utworzyć z niej tabelę przestawną. Czy jest jakiś kod VBA, który mógłby wziąć datę z górnego wiersza i umieścić go w kolumnie takiej jak ta:
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...
Jedynym problemem jest liczba linii, które mogą być w zespole jest zmienna co miesiąc. Jakieś sugestie?
Odpowiedzi:
0 dla odpowiedzi № 1Oto, co mam dla ciebie w oparciu o małą informację. Stworzyłem Ci szablon i tak to wygląda.
Musisz uruchamiać program, a drugi to miejsce, w którym umieścisz dane.
Więc jeśli spojrzysz na dane, które umieściłem, wszystko, co muszę zrobić, to nacisnąć przycisk uruchamiania i tak będzie wyglądać.
Oto kod przycisku uruchamiania.
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 oto szablon ze wszystkim, co już zostało ukończone i wszystko, co musisz zrobić, to wczytać dane do karty danych i uruchomić push. http://speedy.sh/twvt3/Template.xlsm