2012-10-31 24 views
1

UPDATE: 得到了一个新的问题,有一个公式,不能完全得到它,因为在公式中的文字工作,公式(如从Excel取)应该是,总每周都有变化VBA

=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)就像写作“”没有销售价格“”没有不可避免的“预计结束声明”错误

+0

如果您录制宏,您的固定范围是否正确?但是如果你在C中添加一个最后一行的检查并设置你的范围C1:C(最后一行)并得到这个总和? – CustomX

回答

1

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

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

额外1

是否有可能使用这个公式在单元格中左录入单词总计?

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 
+1

@JamesDev,我在这里找到了这个SUM函数; http://stackoverflow.com/questions/2960695/excel-vba-sum-up-a-column – CustomX

+0

@JamesDev,它一开始并不是复制/粘贴解决方案,现在请尝试。在第二行使用'Range(“C1:C”&LastRow)'是为了向你展示你的范围是什么? – CustomX

+0

@JamesDev,检查了什么是错误的,并仔细检查和验证我的解决方案! – CustomX