在VBA宏excel代码中添加公式表达式而不是值

时间:2016-10-02 22:49:49

标签: excel vba excel-vba macros

我正在编写一个VBA代码来对excel进行一些计算。 我有一个带有数字的单元格,我希望另一个单元格具有基于第一个单元格的公式,而不是具有公式的计算值。我一直在尝试使用.Formula,但它不起作用:

'Ciclo
Cells(rowWhereToAddPhase, 6).Value = Round(3600 / Worksheets(originalSheet.Name).Cells(row, 22), 2)

'Prod/h
Cells(rowWhereToAddPhase, 7).Formula = "=Round(60 / Cells(rowWhereToAddPhase, 6).Value * 60, 0)"

当我尝试这个时,我只是得到错误400.

相反,如果我使用它:

'Prod/h
Cells(rowWhereToAddPhase, 7).Value= Round(60 / Cells(rowWhereToAddPhase, 6).Value * 60, 0)

我只是得到一个简单的数字。

图片,它在第二种情况下的外观:

enter link description here

我希望如何拥有它:

enter link description here

我想问题是如何调用单元格:我使用Cells(**rowWhereToAddPhase**, 6)来引用它,因为我不知道它在哪一行,但我想我应该用另一种方式。

有什么想法吗?

由于

2 个答案:

答案 0 :(得分:2)

Cells(rowWhereToAddPhase, 7).Formula = _
   "=Round(60/" & Cells(rowWhereToAddPhase, 6).Address() & "*60,0)"

答案 1 :(得分:0)

.Formula需要是一个字符串,其内容与在Excel中手动输入公式时的内容相同(例如oRange.Formula =“= SUM(A5:C7)”)。

尝试手动在Excel单元格中创建公式。然后当它工作时,通过VBA设置它,并且可能使用一些字符串连接来获取变量rowWhereToAddPhase。