将每隔一行的单元格数据从 H 列移动到 I 并替换 B 和 C 中的文本

Move cell data in every other row from column H to I and replace text in B and C

我是宏的新手,需要在 1,000 多行 sheet 上执行以下操作:

我有一个 sheet,我需要每隔一行复制一次,然后修改新行。

复制附加行 i 运行 这个宏:

    Sub CopyRows()
Dim LR As Long
Dim i As Long

LR = Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

    For i = LR To 2 Step -1
        Rows(i).Copy
        Range(Rows(i + 1), Rows(i + 1)).Insert Shift:=xlDown
        Application.CutCopyMode = False
    Next i

End Sub

我需要在 header 行之后每隔一行执行两个额外的操作。

操作一: 在 B 列和 C 列中,我需要用 "data for B" 和 "Data for C" 替换文本,每次替换的文本都是静态的。

操作二: 我需要把H列的数据剪切下来粘贴到I列。

如能帮助执行此宏,我们将不胜感激。

这是在 Excel 2016 年

我的最终解决方案感谢@MortenAnthonsen,他的解决方案为我提供了解决以下问题所需的条件:

Sub myMaker()
Dim LR As Long
Dim i As Long

LR = Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

    For i = LR To 2 Step -1
        Rows(i).Copy
        Range(Rows(i + 1), Rows(i + 1)).Insert Shift:=xlDown
        Application.CutCopyMode = False
    Next i

For i = 3 To Cells(2, 2).End(xlDown).Row Step 2
    Cells(i, 2).Value = "B Data"
    Cells(i, 3).Value = "C Data"

    Range("H" & i).Select
    Selection.Cut
    Range("I" & i).Select
    ActiveSheet.Paste

Next i


End Sub

这应该可以解决问题

Sub operations()
Dim i As Integer

For i = 2 To Cells(2, 2).End(xlDown).Row Step 2
    Cells(i, 2).Value = "data for B"
    Cells(i, 3).Value = "Data for C"
Next i

Range(Range("H2"), Range("H2").End(xlDown)).Cut Destination:= _
Range(Range("H2"), Range("H2").End(xlDown)).Offset(0, 1)

End Sub