Excel 将公式更改为下一个单元格

Excel 将公式更改为下一个单元格,excel,vba,Excel,Vba,我试图将vlookup中的值与左侧列中的静态值进行比较,然后粘贴匹配的值 列J包含静态值 K列包含引用另一张图纸的vlookup公式 我需要遍历K列,如果vlookup中的值与J列中同一行中的值匹配,那么将该值粘贴到K列中 因此,如果单元格J2=240.89,且单元格K2中的vlookup值=240.89,则将值240.89粘贴到K2中 到目前为止,我的代码在整个范围内循环,但在最后粘贴的值处停止,并忽略vlookup公式 以下是我的代码: Option Explicit Sub CheckV

我试图将vlookup中的值与左侧列中的静态值进行比较,然后粘贴匹配的值

列J包含静态值 K列包含引用另一张图纸的vlookup公式

我需要遍历K列,如果vlookup中的值与J列中同一行中的值匹配,那么将该值粘贴到K列中

因此,如果单元格J2=240.89,且单元格K2中的vlookup值=240.89,则将值240.89粘贴到K2中

到目前为止,我的代码在整个范围内循环,但在最后粘贴的值处停止,并忽略vlookup公式

以下是我的代码:

Option Explicit

Sub CheckValue()

Dim myRange As Range
Dim cell As Range
Set myRange = Range("K2:K3194")

For Each cell In myRange
    If cell.Value = cell.Offset(0, -1) Then
    cell.Copy
    cell.PasteSpecial xlPasteValues
    End If
    Next cell
End Sub
感谢您的帮助

试试看

For Each cell In myRange
    If cell.Value2 = cell.Offset(0, -1).Value2 Then
        cell.value = cell.value
    End If
Next cell
或者可以使用WorksheetFunction.Round将值匹配到特定精度。我觉得这比什么都重要。

试试看

For Each cell In myRange
    If cell.Value2 = cell.Offset(0, -1).Value2 Then
        cell.value = cell.value
    End If
Next cell

或者可以使用WorksheetFunction.Round将值匹配到特定精度。我觉得这比什么都重要。

只是为了好玩,还有一个选择:

Sub Test()

Dim ws as Worksheet: Set ws = Thisworkbook.Worksheets("Sheet1")
ws.Range("K2:K3194").Value = ws.Evaluate("IF(K2:K3194=J2:J3194,J2:J3194,FORMULATEXT(K2:K3194))")

End Sub

注:这需要一个自Excel2013年起可用的功能

只是为了好玩另一个选择:

Sub Test()

Dim ws as Worksheet: Set ws = Thisworkbook.Worksheets("Sheet1")
ws.Range("K2:K3194").Value = ws.Evaluate("IF(K2:K3194=J2:J3194,J2:J3194,FORMULATEXT(K2:K3194))")

End Sub

注:这需要一个自Excel2013年起可用的功能

@ TeXAS2014——如果你用它作为最终答案,请考虑标记:@ TeXAS2014——如果你用它作为最终答案,请考虑标记。