Excel宏,插入每一行

时间:2018-08-16 19:32:07

标签: excel vba

我无法将电子商务商店中的excel订单改成我们的财务软件可以读取的格式。 我在下面放了两张图片。第一个显示了我们商店订单的出口。第二个显示我们需要财务软件的结果。宏应在每个现有行的下方添加一个新行。在新行中

  • 在B列中始终填写数字499027
  • 在H列中,从上一行中取其金额并使其为负数
  • 在K列中,从上一行复制相同的值

对于每个现有行都应重复此过程。我已经花了数小时尝试调整现有的宏,但是我只能设法添加空白的新行...如果有人可以帮助我,那就太棒了。

This image gives an example of how the export from our ecommerce store looks

This is the format I need to be able to upload the orders in our finance software

1 个答案:

答案 0 :(得分:1)

您需要的只是一个简单的循环,该循环将从工作表的底部开始到第二行读取。

在每次迭代中,插入一个新行并写入该新行。

如果数据集很大,则可能需要先将工作表放置在数组中,在数组中进行更改,然后再重写到工作表中。

但这应该可以满足您的需求...

Option Explicit

Sub test()

    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("Sheet1")

    Dim r As Long

    With ws
        For r = lastRow(ws) To 2 Step -1
            .Rows(r + 1).Insert
            .Cells(r + 1, 2) = 499027
            .Cells(r + 1, 8) = .Cells(r, 8) * -1
            .Cells(r + 1, 12) = .Cells(r, 12)
        Next
    End With

End Sub

Function lastRow(ws As Worksheet, Optional col As Variant = 1) As Long
    With ws
        lastRow = .Cells(.Rows.Count, col).End(xlUp).Row
    End With
End Function
  

enter image description here