将存储为文本的数据转换为数字(Oracle SQL)

时间:2015-09-17 15:34:20

标签: sql excel oracle vba excel-vba

我有一些数据可以通过VBA宏从几个Oracle数据库中提取到Excel中。一些列具有数据(数字),afaik,存储为文本。我需要将这些“错误”格式的数据转换为数字,以便我可以对其进行计算,但是我无法弄清楚如何使用VBA有效地执行此操作。此外,只有部分数据存储为文本(K-Q列格式不正确,见下图)。

目前我正在使用此循环转换数据:

Sub convertTextToNumbers(ByVal sColumnHeader As String)
    Dim col As Range, c As Range
    Dim colIndexNumber As Integer, lastUsedRow As Integer

    colIndexNumber = findColumnIndexNumber(sColumnHeader)

    lastUsedRow = ActiveSheet.Cells(Rows.Count, colIndexNumber).End(xlUp).Row

    Set col = Range(Cells(2, colIndexNumber), Cells(lastUsedRow, colIndexNumber))

    For Each c In col
        c.Value = c.Value
    Next c
End Sub

这是最有效的方法吗?我可以使用SQL转换吗?我正在使用的SQL查询只是:

SELECT * FROM table_name

通过选择其他格式进行转换也不起作用。

谢谢!


错误格式化的数据位于K-Q列中

http://i.stack.imgur.com/N93D8.png

1 个答案:

答案 0 :(得分:1)

在列上使用数字格式。

Columns("K:Q").Select
Selection.NumberFormat = "0.00"

或更多程序化

Private Sub formatNumbers()
    Dim ws As Excel.Worksheet

    Set ws = Application.ActiveSheet
    ws.Range("K:Q").NumberFormat = "0.00"

End Sub

您在范围格式菜单中看到的任何格式都可以这种方式应用。

enter image description here