读取显示的单元格值,而不是公式生成的整个值

时间:2020-06-25 05:24:28

标签: excel vba

我正在尝试为excel编写一个宏,用于比较不同工作簿/工作表中的值。我当前面临的问题是,当宏查看正在进行转录检查的工作表中的第一个单元格时,它将采用从该单元格中的公式得出的值(一个长整数),而不是该单元格的值。自我(四舍五入的数字)。这是VBA代码中进行转录检查的部分:

For cCol = fCol To lCol
    For cRow = fRow To lRow
        If ThisWorkbook.Worksheets(ShName).Cells(cRow, cCol).Value = RefWB.Worksheets(RefShName).Cells(cRow + rowOS, cCol + colOS).Value Then
            Else
            
            If ThisWorkbook.Worksheets(ShName).Cells(cRow, cCol).Value = "" Then
                ShVal = "Blank cell"
                Else
                ShVal = ThisWorkbook.Worksheets(ShName).Cells(cRow, cCol)
            End If
            
            Debug.Print "Trx error: (" & ThisWorkbook.Worksheets(ShName).Cells(cRow, cCol).Address & ") This sheet value = " & ShVal & _
            ", reference sheet (" & RefWB.Worksheets(RefShName).Cells(cRow + rowOS, cCol + colOS).Address; "" _
            & ") = " & RefWB.Worksheets(RefShName).Cells(cRow + rowOS, cCol + colOS)
            TrxTotCount = TrxTotCount + 1
        End If
    Next cRow
Next cCol

单元格中的公式为= IF(COUNT(INDEX('Master Calibration File'!$ F:$ F,MATCH('Peak Areas'!$ F $ 3:$ F $ 3,'Master Calibration File'!$ B:$ B,0)))<1,“”,INDEX('Master Calibration File'!$ F:$ F,MATCH('Peak Areas'!$ F $ 3:$ F $ 3,'Master Calibration File'! $ B:$ B,0)))。尽管这会根据单元格指向不同的列-在excel中,这些值是根据导入的数据计算得出的,该数据大约有10-15 dps,然后四舍五入为4dp。

当我运行宏时,我得到这样的输出: Trx错误:($ H $ 70)此工作表值= 0.960209783279582,参考工作表($ H $ 66)= 0.96 Trx错误:($ H $ 71)该工作表值= 0.983517929757312,参考工作表($ H $ 67)= 0.98

在四舍五入之前,如何更改VBA代码以仅查看单元格中显示的值而不是整个值?请注意,并非所有值都将四舍五入为4dp。

0 个答案:

没有答案
相关问题