Excel 如何编写基本宏来比较两列在.50范围内的差异?

Excel 如何编写基本宏来比较两列在.50范围内的差异?,excel,vba,Excel,Vba,我正在尝试编写一个宏来比较B列和C列中的值之间的差异。我希望该宏比较两列(B&C)并找到彼此在+/-.50范围内的深度,我希望跟踪与测试深度+/-.50范围内的样本深度相对应的样本#(a列),然后找出样本深度和测试深度之间的差异。例如,以下图像是我希望宏的外观之前和之后的图像: 之前: 之后: 给你。用于读取、迭代器计数输出行的嵌套循环。可能需要一些定制,但这是它的核心 Sub foo() Dim itr As Integer itr = 2 For Each sd

我正在尝试编写一个宏来比较B列和C列中的值之间的差异。我希望该宏比较两列(B&C)并找到彼此在+/-.50范围内的深度,我希望跟踪与测试深度+/-.50范围内的样本深度相对应的样本#(a列),然后找出样本深度和测试深度之间的差异。例如,以下图像是我希望宏的外观之前和之后的图像:

之前:

之后:


给你。用于读取、迭代器计数输出行的嵌套循环。可能需要一些定制,但这是它的核心

Sub foo()

    Dim itr As Integer
    itr = 2

    For Each sd In Range("B:B")

        If sd.Value = "" Then Exit For
        If IsNumeric(sd.Value) Then

        For Each td In Range("C:C")

            If td.Value = "" Then Exit For
            If IsNumeric(td.Value) Then

                If Abs(sd.Value - td.Value) < 0.5 Then

                    Cells(itr, 5) = sd.Value
                    Cells(itr, 6) = td.Value

                    Cells(itr, 8) = sd.Value - td.Value

                    itr = itr + 1
                End If

            End If
        Next td


        End If
    Next sd
End Sub
Sub-foo()
Dim itr作为整数
itr=2
对于范围内的每个sd(“B:B”)
如果sd.Value=”“,则退出
如果是数字(sd.Value),则
对于范围内的每个td(“C:C”)
如果td.Value=”“,则退出
如果是数字(td.Value),则
如果Abs(标准偏差值-标准偏差值)<0.5,则
单元格(itr,5)=标准偏差值
单元格(itr,6)=td.值
单元格(itr,8)=标准偏差值-标准偏差值
itr=itr+1
如果结束
如果结束
下一个td
如果结束
下一个sd
端接头

您说您正在尝试编写宏。请发布您的代码,以便我们提供帮助。我不知道您是如何从前到后的,特别是在E列和F列中-您能详细说明一下吗?听起来您只是想检查B列和C列中的值是否在0.5以内。如果是这样的话,为什么你需要一个宏而不仅仅是一个公式呢?如果可能的话,我愿意使用公式,但我不知道怎么做。我将C列中的所有值与B列中的所有值进行比较,看它们是否在+/-.5范围内,如果其中任何一个在+/-.5范围内,它们将显示在E列和F列中,显示在+/-.5范围内的一对,G列显示匹配深度来自的样本号,然后是两个值之间的差值。可能满足+/-.5标准的可能深度值可能不一定在B和C中的同一行中。