如何使用Excel VBA删除日期并将其放置在列中
因此,我有一个数据输出,以以下形式输出,日期持续一个月:如何使用Excel VBA删除日期并将其放置在列中,excel,vba,Excel,Vba,因此,我有一个数据输出,以以下形式输出,日期持续一个月: 9/1/2014 Team Quantity Tom 1 Jim 2 9/2/2014 Team Quantity Tom 1 Jim 2 我必须手动删除每行顶部的日期,并将其放入一列中,以便从中创建透视表。是否有任何VBA代码可以从最上面一行获取日期并将其放入如下列中: Team Q
9/1/2014
Team Quantity
Tom 1
Jim 2
9/2/2014
Team Quantity
Tom 1
Jim 2
我必须手动删除每行顶部的日期,并将其放入一列中,以便从中创建透视表。是否有任何VBA代码可以从最上面一行获取日期并将其放入如下列中:
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...
唯一的问题是一个团队每个月可以管理的行数是可变的。有什么建议吗?这是我根据这些小信息给你的建议。我已经为您创建了一个模板,这就是它的外观 你必须在运行程序的地方加上标签,另一个是你把数据放进去的地方。 所以,如果你看一下我输入的数据,我要做的就是按下run按钮,这就是它的样子。 下面是运行按钮的代码
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
这是一个模板,它已经完成了所有的工作,您所做的就是将数据加载到数据选项卡并推送运行。
是的,这很容易,数据是如何发布的,这些信息将帮助我满足您的需要,并使这项工作做得更好。所有这些数据都在一列中,并且总是放在同一个excel文件中吗?比如说,如果你制作了一个模板excel文件,那么将数据导出到模板中并保存下来,这样你就可以始终使用相同的excel文件code@StortmasterQ这看起来与之前的情况大不相同。数据以上面列出的第一种格式显示。我可以使用模板文件粘贴提取的信息,并使用相同的vb代码。请看我的答案,让我知道。