将以文本forms存储的数据转换为数字(Oracle SQL)
我有一些数据,我通过VBAmacros从几个Oracle数据库中提取到Excel中。 一些列有数据(数字),afaik,存储为文本。 我需要将这些“错误的”格式化的数据转换为数字,以便我可以做它的计算,但我不知道如何有效地使用VBA做到这一点。 此外,只有部分数据以文本forms存储(KQ列的格式不正确,请参见下图)。
目前即时通讯使用这个循环来转换数据:
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
另外通过select另一种格式转换不起作用。
谢谢!
错误地格式化的数据在KQ列中:
在列上使用数字格式。
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
在范围格式菜单中看到的任何格式都可以这样应用。