我正在尝试设置一个查找列“G”中单元格的过程,如果值大于1,则复制整个表格行,插入一行(多次 - 基于该值为1)和将该值粘贴到每个新插入的行中。
因此,如果单元格“G4”中的数量为3,那么我想复制该单元格的行并在其下方插入一行2次并粘贴复制的值。
以下是我到目前为止......
**请注意,所有这些都在Excel中的表格中。 (不确定这是否与我的代码有关)
Dim Qty As Range
For Each Qty In Range("G:G").cells
If Qty.Value > 1 Then
Qty.EntireRow.cell
Selection.Copy
ActiveCell.Offset(1).EntireRow.Insert
Selection.Paste
Selection.Font.Strikethrough = True
End If
Next
End Sub
答案 0 :(得分:1)
您的方法和代码存在许多问题
Selection
(即使你的逻辑没有操纵ActiveCell)以下是这些想法的演示
Sub Demo()
Dim sh As Worksheet
Dim lo As ListObject
Dim rColumn As Range
Dim i As Long
Dim rws As Long
Set sh = ActiveSheet ' <-- adjuct to suit
Set lo = sh.ListObjects("YourColumnName")
Set rColumn = lo.ListColumns("YourColumnName").DataBodyRange
vTable = rColumn.Value
For i = rColumn.Rows.Count To 1 Step -1
If rColumn.Cells(i, 1) > 1 Then
rws = rColumn.Cells(i, 1) - 1
With rColumn.Rows(i)
.Offset(1, 0).Resize(rws, 1).EntireRow.Insert
.EntireRow.Copy .Offset(1, 0).Resize(rws, 1).EntireRow
.Offset(1, 0).Resize(rws, 1).EntireRow.Font.Strikethrough = True
End With
End If
Next
End Sub