首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Excel数据转换宏无法识别开头带有<的数字

Excel数据转换宏无法识别开头带有<的数字
EN

Stack Overflow用户
提问于 2018-06-27 05:25:00
回答 1查看 39关注 0票数 0

我正在处理大量的实验室测试结果,这些结果在excel中显示在一列中,但是这些结果来自不同实验室的不同单位,因此我需要转换一些数据,以便所有实验室数据都使用相同的单位。

我已经创建了一个宏来查找我想要更改的实验室数据,并将转换这些数据,但是一些结果显示为<0.07等,但是该宏不会识别和转换数字开头的任何<。

有没有人能建议一种方法,让我可以修改下面的宏,也可以转换包含<的实验室结果?

代码语言:javascript
复制
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的结果)的结果,所有其他结果将保持不变。

EN

回答 1

Stack Overflow用户

发布于 2018-06-27 06:08:07

我会为此创建一个用户定义的函数:

代码语言:javascript
复制
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)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51051561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档