根据保留时间快速定位杂质

2025-09-27 05:22:30

1、首先,将对照(或者系统溶液)以及供试品溶液的数据粘贴到Excel表格中。

根据保留时间快速定位杂质

2、然后打开BVA编辑器,具体可参考之前的经验《如何将多行多列单元格区域按照升序或者降序排列》,关于打开VBA编辑器以及新建控件的过程都有详细描述。

0如何将多行多列单元格区域按照升序或者降序排列

3、在编辑框中输入以下代码

Sub 杂质定位()

 

Dim i As Integer

 

Dim j As Integer

 

Dim x As Integer

 

Dim s As Single

 

'首先选择目标位置的第一个单元格(即,供试品名称的第一个单元格)

 

m = Selection.Row

 

n = Selection.Column

 

'然后开始选择对照品和供试品的区域

 

arr1 = Application.InputBox("对照区域", "请选择对照区域", Type:=8)

 

arr2 = Application.InputBox("样品区域", "请选择样品区域", Type:=8)

 

   h = UBound(arr2, 1) '此处是为了确定结果存放的区域大小(多少行)

 

    '以下通过循环筛选满足条件的单元格位置 (即找到哪些是已知杂质)

 

    For i = 1 To UBound(arr1, 1)

 

        For j = 1 To UBound(arr2, 1)

 

                    s = Abs(arr2(j, 2) - arr1(i, 2)) '此处默认为第一例为保留时间,第二列为名称,如果实际中相反,那么此处的2改为1,下列的1改为2

 

            If s < 0.2 Then arr2(j, 1) = arr1(i, 1) '此处的判定标准为保留时间差值的绝对值小于0.2min就判定为已知杂质,可根据情况自己设置阈值(0.1,0.15等等都可以)。

 

        Next j

 

    Next i

 

    '此处是为了填写未知杂质,不是已知杂质的位置即为未知杂质

 

    y = 1

 

    For x = 1 To UBound(arr2, 1)

 

                If arr2(x, 1) <> "" Then arr2(x, 1) = arr2(x, 1) Else arr2(x, 1) = "未知杂质" & y: y = y + 1

 

            Next x   '以下是为了将筛选的结果填入指定的单元格区域中

 

   Cells(m, n).Resize(h, 2) = arr2

 

End Sub

【请注意】:‘后面的文字为注释文本,方便大家理解,可以删去或者不写。

根据保留时间快速定位杂质

4、然后在excel界面中添加一个控件(例如,命名为“杂质定位”),指定到刚才编辑的“杂质定位”这条宏。

根据保留时间快速定位杂质

5、很关键的一步,单击供试品中第一个保留时间的左侧单元格(作用是激活该单元格,这样后面才能写入结果),然后再单击控件【杂质定位】,依次选择对照品区域、供试品区域,就可以看到结果。

注意:在弹出的选择区域输入框中选择对照品和供试品的区域时,一定要将名称和保留时间两列全部选中。

根据保留时间快速定位杂质

根据保留时间快速定位杂质

根据保留时间快速定位杂质

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢