我正在处理一个巨大的电子表格,需要一些我想为它编写的特定宏的帮助。
我有一大堆关于什么设备在哪个房间里的信息。每个房间都有自己的行,用于安装的设备类型。有时,一个房间有多个相同的设备,并在数量列中指定。我需要拆分/复制这些行,以便每个设备都有自己的行。
我目前的情况:
A B C
Equip. Name Rm Number Quantity
xxxxx 1.2.3.4 5
yyyyy 1.2.3.4 1
我需要宏为我做什么:查找并将数量大于1的所有行复制到与数量值相同的次数下面的以下行中,并将整个电子表格的数量全部替换为1。
A B C
Equip. Name Rm Number Quantity
xxxxx 1.2.3.4 1
xxxxx 1.2.3.4 1
xxxxx 1.2.3.4 1
xxxxx 1.2.3.4 1
xxxxx 1.2.3.4 1
yyyyy 1.2.3.4 1
提前谢谢。
答案 0 :(得分:3)
要扩展适当的行,附加的宏将遵循以下模式:
Sub ExpandRows()
Dim dat As Variant
Dim i As Long
Dim rw As Range
Dim rng As Range
Set rng = ActiveSheet.UsedRange
dat = rng
' Loop thru your data, starting at the last row
For i = UBound(dat, 1) To 2 Step -1
' If Quantity > 1
If dat(i, 3) > 1 Then
' Insert rows to make space
Set rw = rng.Rows(i).EntireRow
rw.Offset(1, 0).Resize(dat(i, 3) - 1).Insert
' copy row data down
rw.Copy rw.Offset(1, 0).Resize(dat(i, 3) - 1)
' set Quantity to 1
rw.Cells(1, 3).Resize(dat(i, 3), 1) = 1
End If
Next
End Sub