运行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 +`(上面的选项卡)一次查看所有公式