Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在VB.net代码中使用“=IF(F2>E2,F2-E2,(“24:00:00”-E2)+F2”?_Vb.net_Excel - Fatal编程技术网

如何在VB.net代码中使用“=IF(F2>E2,F2-E2,(“24:00:00”-E2)+F2”?

如何在VB.net代码中使用“=IF(F2>E2,F2-E2,(“24:00:00”-E2)+F2”?,vb.net,excel,Vb.net,Excel,我试图减少为应用程序生成报告所需的时间。我们在Excel中生成报告。我们发现,在Excel中使用公式进行某些计算要比在VB.net中以编程方式进行计算快得多 因此,基本上我需要在VB.net代码中使用以下公式。但这给了我一个错误 =IFF2>E2,F2-E2,24:00:00-E2+F2 我试过的 Dim f As String = "=if(RC[-1]>RC[-2], RC[-1]-RC[-2], (" & "24:00:00" & "-RC[-2])+RC[-1]"

我试图减少为应用程序生成报告所需的时间。我们在Excel中生成报告。我们发现,在Excel中使用公式进行某些计算要比在VB.net中以编程方式进行计算快得多

因此,基本上我需要在VB.net代码中使用以下公式。但这给了我一个错误

=IFF2>E2,F2-E2,24:00:00-E2+F2

我试过的

Dim f As String = "=if(RC[-1]>RC[-2], RC[-1]-RC[-2], (" & "24:00:00" & "-RC[-2])+RC[-1]"

wbXl.Sheets("time diff", 7).FormulaR1C1 = f

wbXl.Sheets("time diff").Cells(2, 7).FormulaR1C1 = """"=if(RC[-1]>RC[-2], RC[-1]-RC[-2], ("24:00:00" & "-RC[-2])+RC[-1]""""
几乎没有其他组合,但似乎没有任何效果

任何提示或帮助都会非常有用。

从哪里开始

Dim f As String = "=if(RC[-1]>RC[-2], RC[-1]-RC[-2], (" & "24:00:00" & "-RC[-2])+RC[-1]"
在Excel中,这不是有效的语法。您不能在调暗值时分配值…如果您想这样做,请获取.net

引号里的“24:00:00”是怎么回事?为什么不直接减去1呢

所有的引语都应该是:

Cells(2, 7).FormulaR1C1 = "=if(RC[-1]>RC[-2], RC[-1]-RC[-2], (""24:00:00""-RC[-2])+RC[-1])"
或者更好:

Cells(2, 7).FormulaR1C1 = "=if(RC[-1]>RC[-2], RC[-1]-RC[-2], (1-RC[-2])+RC[-1])"
我还假设您正在使用RC符号,因为您将要进行动态输入。否则,只需使用易于维护的单元格ID即可。重新阅读,它在.net中调用Excel我正在收集的内容。否则,我会说工作表语法应该不同。大多数人更喜欢射程而不是手机。Cell2,7比范围$G$2更难阅读

下面是我写公式的方法:

=B8+(B8<A8)-A8
(or in RC: =RC[-1]+(RC[-1]<RC[-2])-RC[-2])

它给了你什么错误?我从HRESULT得到了异常:0x800A03eChanks@pnuts,这起作用了,这里是代码再次检查时间A是否大于B,并相应地减去wbXl.SheetsUnique Session.Cells2,7.FormulaR1C1==IFRC[-1]>RC[-2],RC[-1]-RC[-2],RC[-1]+1-RC[-2]将文本格式设置为h:mm:ss wbXl.SheetsUnique Session.RangeG2:G&lrow+1.NumberFormat=[h]:mm:ss@你好,罗伯特,谢谢你,我正在使用.net,'Cells2,7.FormulaR1C1'作为一个已经使用过的示例,我在excel中使用了公式,它工作正常,不能在.net中动态地将其用于多个工作表。而且我还是不明白减法1的概念。你能解释一下吗。
=IF(B6>A6,B6-A6,("24:00:00"-A6)+B6)