如何获取存储为文本的数字的数据类型,从Access导出?

时间:2016-01-26 13:51:19

标签: excel vba excel-vba

我有一个从Access数据库导出的文件,在这个文件中有一个软件版本的列。当它导出到Excel时,软件版本变成一个存储为文本"的数字。在这种情况下,它是文本" 11.3。"

我想检查这些值是否完全相同,但我无法让我的代码识别11.3的文本值。我尝试将值更改为数字类型,并将其与数字值进行比较,但这不起作用。它总是在我的Else声明中关闭宏。

这是我的代码(转到'检查SW Rev;这是发生错误的地方):

function sanitize(html) {
  var doc = document.createElement('div');
  doc.innerHTML = html;
  return doc.innerHTML;
}

2 个答案:

答案 0 :(得分:0)

我现在没时间弄清楚你在哪里犯错。我最好的猜测是Selection返回的范围不是您认为应该的范围。

但是下面的代码会将下载的工作表上的所有文本值转换为数值:

Option Explicit
Sub ConvertNumbers()
    Dim R As Range

Set R = Cells.Find(what:="SW Rev", after:=Cells(1, 1), LookIn:=xlValues, lookat:=xlWhole, MatchCase:=True)
Set R = Range(R.Offset(1, 0), Cells(Rows.Count, R.Column).End(xlUp))

R = R.Value

End Sub

答案 1 :(得分:0)

这是一个愚蠢的,但它是一个行/列混合。在下面一行中,在“检查正确的SW Rev”下,我让iCounter和iSoft混淆了。

If wBook.Worksheets("PartData").Cells(iSoft, iCounter).Text = dTemp Then

我也把它改回了

If wBook.Worksheets("PartData").Cells(iSoft, iCounter).Text = "11.3" Then