Excel 基于值在两个单元格之间插入行
我正在寻找一个宏,该宏将根据列E中的单元格值插入行。如果上面和下面的单元格差值大于0.002,我希望在它们之间插入两行。下面是一个我希望数据看起来像什么的例子 前 E列 42948.745 (插入空白(行) (插入空行) 42948.758 (插入空白(行) (插入空行) 42948.898 42948.900 42948.901 (插入空白(行) (插入空行) 42948.933Excel 基于值在两个单元格之间插入行,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
如果代码包含一个方法来填充空白单元格中的单元格,从上面的单元格中加上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抱歉我误解了你最初的要求。我编辑了代码来做,现在这些值是正确的。如果这个代码有效,请通过点击上/下投票下的按钮来接受我的答案!它是有效的!谢谢!