我正在尝试用他们的电子表格帮助同事(在MAC Excel V16.16.8上),因为我有一些编码经验,主要是在SQL中,只有非常非常基本的VBA级别。
他们接收每日数据(这就是为什么需要VBA),我已经设法使用基本宏将它们拆分成单独的表格。
在这个例子中,表的名称是“伯明翰”。
B栏“间隔”是一天中的小时数(24小时制)。它们仅接收当天数据实际存在于其他列中的任何数据。但是,对于他们的报告,他们需要添加/插入新行,即使在0-23(午夜 - 晚上11点)没有任何数据的情况下也是如此。
“间隔”列需要按照降序排列的正确小时/数字,如示例所示,Date
和Campaign
列始终相同。并将其余的细胞用于包含“0”的Total_Calls
,Closed
等。
如何添加新行,“间隔”和“0”?
我尝试了几种不同的方法,主要是试图合并一个只包含所有“间隔”0-23的大多数空白的单独表。但是,我在每种方法中都失败了。
我几乎100%肯定有一个相对简单的方法,但我缺乏具体的VBA知识。
非常感激任何的帮助。
谢谢
您可以获取当前日期和当前广告系列,并插入缺少的行,如下所示:
Private Sub FillAllHours()
Dim i As Long
Dim myDate As Date ' value from date column
Dim myCampain As String ' value from campaign column
With ActiveSheet
myDate = .Cells(.Rows.Count, 1).End(xlUp).Value
myCampain = .Cells(.Rows.Count, 3).End(xlUp).Value
For i = 2 To 25
If .Cells(i, "B") <> i - 2 Then ' if row is missing
.Rows(i).Insert ' insert row above
.Cells(i, "B") = i - 2 ' insert hour number
.Cells(i, "A") = myDate ' insert date
.Cells(i, "C") = mycampaign ' insert campaign
.Cells(i, "D").Resize(1, 9).Value = 0 ' fill 9 cells with 0
End If
Next i
End With
End Sub