【问题标题】:Total from column changes weekly vba列每周变化的总数 vba
【发布时间】:2013-08-27 22:17:13
【问题描述】:

更新: 公式出现了新问题,由于公式中的文本,无法使其正常工作,公式(取自 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) 就像写“没有销售价格”,没有不可避免的“预期语句结束”错误

【问题讨论】:

  • 如果你录制宏,你有一个固定的范围对吗?但是,如果您在 C 中添加对最后一行的检查并设置您的范围 C1:C(last row) 并获得总和呢?

标签: excel vba automation range


【解决方案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

【讨论】:

  • @JamesDev,我在这里找到了这个 SUM 函数; stackoverflow.com/questions/2960695/excel-vba-sum-up-a-column
  • @JamesDev,起初它不是复制/粘贴解决方案,请现在尝试。在第二行中使用Range("C1:C" &amp; LastRow) 是为了向您展示SUM 的范围。
  • @JamesDev,检查出了什么问题并仔细检查并验证了我的解决方案!
  • 你是男人中的绝对英雄。我现在对你的爱没有尽头
  • 可以用这个公式在左边的单元格中输入Total这个词吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多