列中的总计每周更改一次vba

时间:2012-10-31 11:04:43

标签: excel vba automation range

更新: 有一个公式的新问题,由于公式中的文本,公式(取自excel)应该是,

=IF(D2<=0,"No Sales Price",E2/D2)  

我尝试了尽可能多的组合,但“无销售价格”引起了引号问题。我目前的代码是

For i = 2 To LastRowG   
Range("Q" & i).Formula = "=IF(D" & i & "<=0," & "(No Sales Price)",  & "(E" & i & "/D" & i & "))"    
Next i  

环顾四周但却未能看到任何解决问题的方法,任何启示都会得到最大的欣赏

编辑:通过插入以下行来解决此问题;

For i = 2 To LastRowG  
Range("Q" & i).Formula = "=IF(D" & i & "<=0," & Chr(34) & "No Sales Price" & Chr(34) & "," & "E" & i & "/" & "D" & i & ")"
Next i 

Chr(34)将ASCII字符附加到该数字上,恰好是“。该程序不会将其读作已在引号中键入并继续正确读取代码行但是然后放置公式中正确的“无销售价格”。

它将按照公式的目的输出行,而Chr(34)就像是写“无销售价格”而没有不可避免的“预期的结束语”错误

1 个答案:

答案 0 :(得分:1)

我建议的结果会是这样的:

LastRow = Cells(Rows.Count, "C").End(xlUp).Row
Cells(LastRow + 1, 3).Formula = "=SUM(C1:C" & LastRow & ")"

额外1

是否可以使用此公式在左侧单元格中输入单词Total?

Range("B" & LastRow + 1) = "Total"

额外2

还有一个只是为了推动我的运气,如何在最后一个单元格的列中一直复制公式? =G2*57.5 copied until the last row in I

LastRowG = Cells(Rows.Count, "G").End(xlUp).Row

For i = 2 To LastRowG
    Range("I" & i).Value = "=G" & i & "*57.5"
Next i