我正在处理大量的实验室测试结果,这些结果在excel中显示在一列中,但是这些结果来自不同实验室的不同单位,因此我需要转换一些数据,以便所有实验室数据都使用相同的单位。
我已经创建了一个宏来查找我想要更改的实验室数据,并将转换这些数据,但是一些结果显示为<0.07等,但是该宏不会识别和转换数字开头的任何<。
有没有人能建议一种方法,让我可以修改下面的宏,也可以转换包含<的实验室结果?
Sub CONVERT_UNITS()
'
' CONVERT_UNITS Macro
'
'
ActiveCell.FormulaR1C1 = _
"=IF(RC12=""ug/kg"",RC11/1000,IF(RC12=""mg/l"",RC11*1000,RC11))"
Range("M2").Select
Selection.AutoFill Destination:=Range("M2:M" & Range("L" & Rows.Count).End(xlUp).Row)
Range(Range("M2"), Range("M2").End(xlDown)).Select
End Sub作为参考,我的实验室数据包含在K列中,单位显示在L列中。我希望将转换后的实验室结果放入M列(参见下面的示例数据)。我只转换ug/kg (除以1000的结果)和mg/l (乘以1000的结果)的结果,所有其他结果将保持不变。

发布于 2018-06-27 06:08:07
我会为此创建一个用户定义的函数:
Public Function convertResults(ByVal result As Variant, ByVal unit As String) As Variant
Dim hasSmaller As Boolean
If Left(result,1) = "<" Then
hasSmaller = True
result = Replace(result, "<", "")
End If
If unit = "ug/kg" Then result = result / 1000
If unit = "mg/l" Then result = result * 1000
If hasSmaller Then result = "<" & result
convertResults = result
End Function..。然后(例如在单元格M2中)只需编写=convertResults(K2, L2)。
https://stackoverflow.com/questions/51051561
复制相似问题