excel - Excel宏,插入每一行
问题描述
我无法将电子商务商店中的订单 Excel 转换为我们的财务软件可以读取的格式。我在下面放了两张图片。第一个显示了我们商店订单的导出。第二个显示了我们财务软件所需的结果。宏应在每个现有行下方添加一个新行。在那个新行中,它应该
- 在 B 列中始终填写数字 499027
- 在 H 列中,取上一行的金额并设为负数
- 在 K 列中,从上面的行中复制相同的值
应该对每个现有行重复此过程。我已经花了几个小时试图调整现有的宏,但我只设法添加空白的新行......如果有人可以帮助我,那就太棒了。
解决方案
您所需要的只是一个简单的循环,它将从底行到第二行读取您的工作表。
在每次迭代中,插入一个新行并写入该新行。
如果您有一个大型数据集,您可能希望先将工作表放入数组中,在数组中进行更改,然后重新写入工作表。
但这应该做你需要的......
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
推荐阅读
- vba - 计算表单上未绑定文本框中的类似记录数。在 MS Access 2016 中
- php - PHP - 标头/配置“允许来源”不起作用
- blockchain - 什么时候在corda中查看交易提案的内容?
- javascript - 由数据库搜索填充的 HTML 表单
- html - 如何在 ion-col 中让物品更接近?
- lto - 使用 LTO 版本 6.0 而不是预期的 8.1 生成
- xml - 删除子标签并将其值连接到父标签的名称
- xamarin - 谁能帮助解释为什么 Xamarin 表单中没有显示 Syncfusion 图表?
- c - 使用递归函数反转结构化数组
- javascript - 将前一个值写入变量