运行macros后显示硬编码的公式

有没有办法通过点击单元格来显示公式? 我写了多个硬编码公式到vba中,运行macros之后,我只能得到单元格中的值。 我想要它,所以macros运行后,我仍然可以在单元格中查看公式。 这些是我目前拥有的公式:

Dim i, lastrow As Integer Range("a10").Select Selection.End(xlDown).Select lastrow = ActiveCell.Row For i = 10 To lastrow Sheets("20140618 Loans").Range("Q" & i) = Application.VLookup(Sheets("20140618 Loans").Range("D" & i), Sheets("20140617 Loans").Range("D:P"), 13, False) Sheets("20140618 Loans").Range("R" & i) = Sheets("20140618 Loans").Range("P" & i) - Sheets("20140618 Loans").Range("Q" & i) Sheets("20140618 Loans").Range("S" & i) = Application.VLookup(Sheets("20140618 Loans").Range("D" & i), Sheets("20140617 Loans").Range("D:H"), 5, False) Sheets("20140618 Loans").Range("T" & i) = Sheets("20140618 Loans").Range("H" & i) - Sheets("20140618 Loans").Range("S" & i) Sheets("20140618 Loans").Range("U" & i) = Application.VLookup(Sheets("20140618 Loans").Range("D" & i), Sheets("20140617 Loans").Range("D:G"), 4, False) Sheets("20140618 Loans").Range("V" & i) = Sheets("20140618 Loans").Range("G" & i) - Sheets("20140618 Loans").Range("U" & i) Sheets("20140618 Loans").Range("W" & i) = WorksheetFunction.SumIf(Sheets("WSO Interest").Range("H:H"), Sheets("20140618 Loans").Range("D" & i), Sheets("WSO Interest").Range("S:S")) Sheets("20140618 Loans").Range("X" & i) = Application.VLookup(Sheets("20140618 Loans").Range("D" & i), Sheets("20140618 PNL").Range("C:N"), 12, False) Sheets("20140618 Loans").Range("Y" & i) = Sheets("20140618 Loans").Range("R" & i) - Sheets("20140618 Loans").Range("W" & i) - Sheets("20140618 Loans").Range("T" & i) * (Sheets("20140618 Loans").Range("G" & i) / 100) - Sheets("20140618 Loans").Range("X" & i) 

多谢你们。

你没有写出单元格中的公式。 您将该值设置为相等运算符右侧的内容。 使用具有相等性的范围对象意味着您要设置值,而不是公式。 要设置公式,您需要指定Formula属性,您将不得不像在Excel中一样设置公式。

例如。

 Sheets("20140618 Loans").Range("Q" & i).Formula = _ "=VLOOKUP('20140618 Loans'!D" & i & ",'20140617 Loans'!D:P, 13, 0)" 

此外,这不是你的问题的一部分,但我认为这将有助于你了解有关的声明。

http://msdn.microsoft.com/en-ca/library/wc500chb.aspx

通过使用With … End With,您可以在指定的对象上执行一系列语句,而无需多次指定对象的名称。 在With语句块中,您可以指定以句点开头的对象的成员,就好像With语句对象在它之前。

像这样使用.Formula方法:

Sheets("20140618 Loans").Range("Q" & i).Formula = '...your formula here


注意:您需要添加引号并将其格式化为不是由VBA计算的公式。 例如:

 Range("A1").Formula = "=1+2" 

你必须build立string以反映工作公式

例如,如果您有列A值如下

在这里输入图像说明

运行下面的macros

 Sub FillInFormula() Dim i, lastrow As Integer Range("A1").Select Selection.End(xlDown).Select lastrow = ActiveCell.Row For i = 1 To lastrow Range("B" & i) = "=sum(A" & i & ":A" & i + 1 & ")" Next i End Sub 

在这里输入图像说明

就是这样

PS使用Ctrl +`(上面的选项卡)一次查看所有公式