Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.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
用VBA在单元格中编写excel公式_Excel_Vba_Excel Formula - Fatal编程技术网

用VBA在单元格中编写excel公式

用VBA在单元格中编写excel公式,excel,vba,excel-formula,Excel,Vba,Excel Formula,我想用VBA代码将excel公式写入单元格。我在“sheets1”中有一个名为“Table1”的表格。在“sheets2”单元格“A2”中,我想添加一个公式,从“sheets1”中减去“Table1”列B的第一行和最后一行,以便用户可以在单元格中看到公式。有没有办法做到这一点?应该是这样的 Public Function Substract() dim firstRow as Integer dim endrow as Integer firstrow = IIf(Is

我想用VBA代码将excel公式写入单元格。我在“sheets1”中有一个名为“Table1”的表格。在“sheets2”单元格“A2”中,我想添加一个公式,从“sheets1”中减去“Table1”列B的第一行和最后一行,以便用户可以在单元格中看到公式。有没有办法做到这一点?

应该是这样的

Public Function Substract()
    dim firstRow as Integer
    dim endrow as Integer

    firstrow = IIf(IsEmpty(Sheets("Table1").Range("B1")), Sheets("Table1").Range("B1").End(xlDown).Row, 1)
    endrow =  Sheets("Table1").Cells(Sheets("Table1").Rows.count,"B").End(xlUp).Row

    Substract = firstrow  - endrow
End Function
注意:您必须创建一个模块并将代码放入其中


在excel中,您可以使用=Substract()将其称为公式化,但这样一来,就不会有像“=行(索引(表1!B:B,MATCH(TRUE,INDEX((表1!B:B0),0),0))))-ROW(索引(表1!B:B,MAX((B:B“”)*(行(表1!B:B俎俎俎))”这样的难以处理的excel公式化必须使用Shift+Control+enter输入。但是,你所说的“棘手”是什么意思呢?一个公式不可能是顽固的或有争议的。。。任何您所说的“以便用户可以看到单元格中的公式”是什么意思?您可以看到VBA函数名,或者是放置在
Range.formula=
…中的非VBA函数,您是想说“能够与之交互”吗"? 换句话说,用户可以在公式栏中看到公式,并在需要时进行编辑。多年来,我用顽固的公式调试了许多电子表格!许多人坚持争论@巴罗夫修正案。