首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Excel数据导入为'15/2,宏转换为数字?

Excel数据导入为'15/2,宏转换为数字?
EN

Stack Overflow用户
提问于 2015-06-18 14:14:51
回答 4查看 234关注 0票数 3

我正在通过power查询将API中的数据导入excel。

因为有些数据是分数的,这就造成了一场噩梦。由于这个原因,我不能使用'number‘,这会引发一个错误,所以我必须作为文本导入。

当这样做时,数据导入如下,使用"'“infront:

因为我需要每分钟更新数据,然后在上面运行公式,所以我需要这个数字。最简单的方法是什么(宏从‘15/2转换为数字)或修正Power查询并允许它导入/转换分数(这将是完美的!)

非常感谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-06-18 15:05:09

这里有一个要使用的宏(假设屏幕截图有正确的列位置)。唯一需要进行的调整是使用数据的最后一行调整"intLastRow“。

代码语言:javascript
运行
复制
Sub SO()
    Dim intLastRow As Integer, strIn As String
    intLastRow = 100
    For I = 2 To intLastRow
        For t = 4 To 21
            If InStr(1, Cells(I, t).Value, "/") > 0 Then
                strIn = Cells(I, t).Value
                Cells(I, t).Value = Val(Left(strIn, InStr(1, strIn, "/") - 1)) / Val(Right(strIn, Len(strIn) - InStr(1, strIn, "/")))
            Else
                Cells(I, t).Value = Val(Cells(I, t).Value)
            End If
        Next t
    Next I
End Sub
票数 3
EN

Stack Overflow用户

发布于 2015-06-18 14:43:16

然后,您可以遍历选定的单元格,并检查每个单元格的前缀字符是否为撇号。如果是的话,那么您所需要做的就是让宏执行相当于手动重新键入单元格内容的操作,方法如下:

代码语言:javascript
运行
复制
For Each c In Selection
    If c.PrefixCharacter = "'" Then
        c.Value = c.Value
    End If
Next c

注意,宏检查PrefixCharacter属性中的内容。此属性可以在VBA中读取,但不能直接更改。这就是为什么宏需要使用看似简单的行将每个单元格的值重新分配到单元格中,实质上是重新键入内容。

有关完整的指南,请参阅:Apostrophes.html

这是我自己的代码:

代码语言:javascript
运行
复制
Public Sub tryit()
Dim i As Long
For i = 1 To 20 'repeat until your last record
    With ThisWorkbook.Sheets("Sheet1")
        If .Cells(i, 5).PrefixCharacter = "'" Then
            MsgBox "removing 1 apostrophe..."
            .Cells(i, 5).FormulaR1C1 = "=" & .Cells(i, 5)
        End If
    End With
Next i
End Sub

还有..。瞧!

票数 1
EN

Stack Overflow用户

发布于 2015-06-18 15:41:54

也许这就是您想要看到的另一个问题的宏vba代码:

代码语言:javascript
运行
复制
Public Sub tryit()
    Dim i As Long
    For i = 1 To 20 'repeat until your last record
        With ThisWorkbook.Sheets("Sheet1")
            .Cells(i, 5).FormulaR1C1 = "=" & .Cells(i, 5)
        End With
    Next i
End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30917856

复制
相关文章

相似问题

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