vba - 运行宏后显示硬编码公式

标签 vba excel

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

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)"

此外,这不是您的问题的一部分,但我认为了解 With 对您有很大帮助。陈述。

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

By using With...End With, you can perform a series of statements on a specified object without specifying the name of the object multiple times. Within a With statement block, you can specify a member of the object starting with a period, as if the With statement object preceded it.

关于vba - 运行宏后显示硬编码公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24393086/

相关文章:

javascript - Office 脚本根据某些单元格中的多个数据删除整行

VBA MsgBox 导致错误

excel - 如何删除Excel中不满足包含的行?

excel - 如果需要,用于检查和更改行的代码

forms - 从加载时运行VBA宏

java - 如何在 Android 上创建 .docx 文件和 .xlsx 文件

excel - 如何在 ClosedXML 中创建数据透视表的示例

vba - 在 Excel 2013 VBA 中编写 FileSystemObject 不再起作用

excel - 忽略 "subscript out of range"错误一次,处理第一次迭代

excel - 在 Excel 中求偏导数