Excel 基于值在两个单元格之间插入行

Excel 基于值在两个单元格之间插入行,excel,vba,Excel,Vba,我正在寻找一个宏,该宏将根据列E中的单元格值插入行。如果上面和下面的单元格差值大于0.002,我希望在它们之间插入两行。下面是一个我希望数据看起来像什么的例子 前 E列 42948.745 (插入空白(行) (插入空行) 42948.758 (插入空白(行) (插入空行) 42948.898 42948.900 42948.901 (插入空白(行) (插入空行) 42948.933 如果代码包含一个方法来填充空白单元格中的单元格,从上面的单元格中加上0.001,从底部单元格中填充0.001。 4

我正在寻找一个宏,该宏将根据列E中的单元格值插入行。如果上面和下面的单元格差值大于0.002,我希望在它们之间插入两行。下面是一个我希望数据看起来像什么的例子

E列

42948.745

(插入空白(行)

(插入空行)

42948.758

(插入空白(行)

(插入空行)

42948.898

42948.900

42948.901

(插入空白(行)

(插入空行)

42948.933

如果代码包含一个方法来填充空白单元格中的单元格,从上面的单元格中加上0.001,从底部单元格中填充0.001。 42948.901

插入42948.902

插入42948.932

42948.933


非常感谢您,因为我一直在努力解决这个问题。我有很多捷径,但没有解决方案。

以下代码将满足您的需要

Sub InsertBlankRowAndSetValue()
    Dim yourColumn As String
    Dim rowToStart As Integer
    Dim nameOfYourSheet As String

    Dim currentValue As Double
    Dim previousValue As Double

    'EDIT VALUES HERE
    yourColumn = "E"
    rowToStart = 1
    nameOfYourSheet = "Name of your sheet"

    With ThisWorkbook.Sheets(nameOfYourSheet)
        'For each cell in the column from the end
        For i = .Cells(.Rows.Count, yourColumn).End(xlUp).Row To rowToStart + 1 Step -1
            currentValue = CDbl(.Range(yourColumn & i).Value)
            previousValue = CDbl(.Range(yourColumn & i).Offset(-1, 0).Value)

            'If the difference with the previous > 0.002
            If ((currentValue - previousValue) > 0.002) Then
                'Add rows and set values
                .Rows(i).EntireRow.Insert Shift:=xlDown
                .Range(yourColumn & i).Value = currentValue + 0.001
                .Rows(i).EntireRow.Insert Shift:=xlDown
                .Range(yourColumn & i).Value = previousValue + 0.001
            End If
        Next i
    End With
End Sub

解释 在
name of yoursheet=“name of your sheet”
中编辑工作表的名称,使其正常工作


我从底部开始检查列中的每个值(当您在上面添加一行时,索引问题更少)如果差值大于0.002,那么我就添加一行,并将0.001加为它的值。

VBA可以做到这一点。你尝试了什么?如果你是新的VBA,记录一个MARCO并编辑它。只需要一些条件。这个代码在添加空白行时非常惊人。空白行中的值仅仅是数字0.001,而不是+0.0.1/0.0.1以上。下面的值。谢谢你,尽管空白行帮了我很大的忙。JtoSmia抱歉我误解了你最初的要求。我编辑了代码来做,现在这些值是正确的。如果这个代码有效,请通过点击上/下投票下的按钮来接受我的答案!它是有效的!谢谢!