回复 4楼Alice的帖子
根据我昨天调试代码的情况来看 “CrossSheet”这个公式是代码里面自定义的,
If InStr(UCase(formula), "CROSSSHEET") <> False Then
SpDest.AddCustomeFunctionExt "CROSSSHEET", 1, 5, 1
End If
然后在处理的时候呢, 使用遍历sheet 上所有使用过的单元格的方式,解析执行
Dim MaxRow As Integer
Dim MaxCol As Integer
With SpDest
MaxRow = .DataRowCnt
MaxCol = .DataColCnt
If Row = 0 And Col = 0 Then
MaxRow = .MaxRow
MaxCol = .MaxCol
End If
End With
Dim row As Integer
Dim col As Integer
For row = 1 To MaxRow
For col = 1 To MaxCol
If InStr(SpDest.Formula, "CROSSSHEET") Then
'Exectute .....
End If
Next col
Next row
所以呢 一开始我以为这个"CROSSSHEET" 是Spread Sheet 自带的功能, 但是现在看来是个CustomFunction,再后来看到这个"CROSSSHEET" 并没有设置Event,所以只是一个书写在Formula里面的标示
之所以"/"很特殊,是因为设置了Cell的Formula之后,“+”"-" "*"都会显示为0.0
而“/”Spread Sheet上的Cell 显示为空,以此来判断,在这种情况下 Spread Sheet 不认可使用除法,这个是在代码逻辑上有意为之的,您说呢? |