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

时间:2017-03-21 12:50:59

标签: excel vba excel-vba excel-2016

我是宏观新手,需要1000+以上的以下内容:

我有一张表,我需要复制其他所有行,然后修改新行。

复制我运行此宏的附加行:

    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

我需要在标题行之后的每一行上执行另外两项操作。

操作1: 在B列和C列中,我需要将文本替换为“B的数据”和“C的数据”,每次替换时文本都是静态的。

操作2: 我需要在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

1 个答案:

答案 0 :(得分:1)

这应该可以解决问题

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