2014-09-19 183 views
0

我想填充与SUMIFS公式列如果条件匹配。在vba sumifs公式

cell.Offset(0, 2).Value = "=SUMIFS(PickData!E:E,PickData!A:A, _ 
" & cell.Address(Rowabsolute:=False, Column:=False) & ", PickData!C:C, _ 
"Retail",PickData!C:C, PickData!L:L, "Report1.TextBox1.Value")" 

我不能看到我与它PickData查找具体工作中去零售错| C:C &从TextBox1中的值(这是日期)

任何帮助将是不胜感激。

感谢 铝

+0

是否要为单元格设置值或将公式放入单元格中?你目前有一半的另一半。也许你需要改变的是'cell.Offset(0,2).Formula =' – Jeeped 2014-09-19 12:25:39

+0

你也没有提到.Address函数中的ColumnAbsolute参数:Rowabsolute:= False,Column:= False – Dave 2014-09-19 12:35:33

回答

1

如果你想在单元格的公式,然后尝试。

cell.Offset(0, 2).Formula = "=SUMIFS(PickData!E:E, PickData!A:A, " _ 
    & cell.Address(0, 0) & ", PickData!C:C, " & Chr(34) & "Retail" & Chr(34) _ 
    & ", PickData!L:L, DATEVALUE(" & Report1.TextBox1.Value & "))" 

这应该给你一个有效的SUMIFS(...)公式。

附录:再看一下,表单的文本框值可能需要用引号括起来。

cell.Offset(0, 2).Formula = "=SUMIFS(PickData!E:E, PickData!A:A, " _ 
    & cell.Address(0, 0) & ", PickData!C:C, " & Chr(34) & "Retail" & Chr(34) _ 
    & ", PickData!L:L, DATEVALUE(" & Chr(34) & Report1.TextBox1.Value & Chr(34) & "))" 
+0

感谢第二个代码工作很好:-) – 2014-09-19 15:22:23

+0

@Alan Treanor - 很高兴你整理出来。顺便说一句,如果你在公式字符串前加一个勾号,它将作为一个文本字符串写入单元格,你可以经常看到犯了错误的地方。例如'cell.Offset(0,2).Formula =''= SUMIFS(...'。你可以看到使用这种方法创建公式时出了什么问题(假设你得到的引号内的引号合理正确)。纠正后删除勾是一个小问题。 – Jeeped 2014-09-19 21:37:58