在 Excel 中提取具有多种数字格式的列

瓦伦钱德

我在网上有一份可以下载的报告。在同一列中,我发现了多种数字格式。IE:

1.000 EA (#,##0.000" EA")

1.000 AU (#, ## 0.000 "AU")

1.000 PAK (#,##0.000" PAK")

我需要从此列中提取 EA、PAK 和 AU,但我无法复制,因为在所有情况下存储的值实际上都是“1”。有什么方法可以提取或创建具有不同格式数字作为值的列?

夜行者23

将此代码放在 VB 编辑器的模块中( Alt F11)

Function myFormat(r As Range) As String
    myFormat = r.NumberFormat
End Function

如果您=myFormat(A1)在单元格中使用公式,它将为您提供单元格格式的A1字符串。

现在在所需的单元格中放置此公式

=TRIM(SUBSTITUTE(RIGHT(myFormat(A1), LEN(myFormat(A1)) - FIND("""",myFormat(A1),1)),"""",""))

这应该会给你想要的结果

更新:

下面是一个全 vba 解决方案。你需要改变myRange,并outputRange根据您的要求

Sub runThis()
    Dim myRange As Range
    Set myRange = ThisWorkbook.Sheets("Sheet1").Range("A1:A3") 'Change this as per your requirement

    Dim outputRange As Range
    Set outputRange = ThisWorkbook.Sheets("Sheet1").Range("F1") 'Change this as per your requirement

    Dim s As String

    For i = 1 To myRange.Rows.Count
        s = myRange(i, 1).NumberFormat
        s = Right(s, Len(s) - WorksheetFunction.Find("""", s, 1))
        s = Trim(WorksheetFunction.Substitute(s, """", ""))
        outputRange.Offset(i - 1, 0) = s
    Next i
End Sub

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章