3

我正在创建一个复杂的电子表格,我可以根据每周通过我们的网络监控不同客户的呼叫。我有两张纸,“raw_data”和“Sheet1”。

我将数据从我们的服务器复制到“Sheet1”到垂直布局中,并运行一个宏来去除不必要的数据行。

在“原始数据”中,呼叫量应根据客户名称在水平布局中进行排序。我在这张表上想要的是至少一个带有分配宏的按钮,它将在 A 列中搜索下一个空闲单元格,插入新行,在序列中添加下一个日期(19/03/2012,26/03/ 2012,...),最后从“Sheet1”复制数据并将值粘贴到正确的列标题下(我想删除“Sheet1”的内容,但保留“raw_data”中的值)。

我知道 VBA 在特定点插入新行,但不是在长列表的末尾。这是我的代码:

Sub Insertrow()
    Rows("33:33").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End Sub

任何帮助都会很好,甚至类似的例子也会很好,所以我可以自己编辑它们,这样我就可以学习了。

谢谢!

标记

更新

我似乎无法以正确的格式将代码添加到评论中。所以又来了……

Sub Insertrow()
        'Selects next empty cell in column A
        ActiveWindow.ScrollRow = 2
        Range("A2").Select
        Selection.End(xlDown).Offset(1, 0).Select
        'Inputs the next date
        Dim n As Long, k As Long
        Application.ScreenUpdating = False
        Rng = 1
        Range(ActiveCell, ActiveCell.Offset(Val(Rng) - 1, 0)).EntireRow.Insert
        k = ActiveCell.Offset(-1, 0).Row
        'copies the formula 1 cell from the left (Column A) to the row below
        n = Cells(k, 1).End(xlToLeft).Column
        Range(Cells(k, 1), Cells(k + Val(Rng), n)).FillDown
End Sub

我现在要做的是在 Sheet1 上的一列中搜索特定的文本字符串(来自 raw_data 的标题)复制该行中的值,该值低于从代码生成的日期(上图)。我可能会使用类似于上面的代码或嵌套的 if 语句,但表 1 中的值将每周删除一次。这是可能的还是我只是在脑海中幻想?

4

1 回答 1

2

标记,如果数据不是表格格式(即不是表格,listobject那么您不需要插入该行),您可以简单地写入最后一行。要将数据写入最后一行,您可以使用类似这样的东西

Sub Sample()
    Dim ws As Worksheet
    Dim wslRow As Long

    Set ws = Sheets("Sheet1")

    wslRow = ws.Range("A" & ws.Rows.Count).End(xlUp).Row + 1

    ws.Range.Range("A" & wslRow).Value = "Blah Blah"
End Sub

然后,如果需要,您可以对日期列上的数据进行排序。

如果您的数据是表格格式,那么您可以使用此技术然后对数据进行排序。

宏执行时出现运行时错误“91”

高温高压

席德

于 2012-04-04T11:21:37.130 回答