我有一个从Access数据库导出的文件,在这个文件中有一个软件版本的列。当它导出到Excel时,软件版本变成一个存储为文本"的数字。在这种情况下,它是文本" 11.3。"
我想检查这些值是否完全相同,但我无法让我的代码识别11.3的文本值。我尝试将值更改为数字类型,并将其与数字值进行比较,但这不起作用。它总是在我的Else声明中关闭宏。
这是我的代码(转到'检查SW Rev;这是发生错误的地方):
function sanitize(html) {
var doc = document.createElement('div');
doc.innerHTML = html;
return doc.innerHTML;
}
答案 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