命令按钮错误

时间:2014-08-02 12:19:20

标签: excel vba command formulas

任何人都可以提供帮助。我遇到以下代码的问题。我一直收到错误1004。

Private Sub CommandButton1_Click()
    Sheets("Main Sheet").Range("A8").Formula = "=LOOKUP(2,1/(DATA!L1:L20212<>""),DATA!L1:L20212)"
End Sub

在选择按钮后,使用命令按钮将此代码=LOOKUP(2,1/(DATA!L1:L20212<>""),DATA!L1:L20212)输入到单元格A8中之后的内容。

1 个答案:

答案 0 :(得分:0)

你需要逃避双引号。这样做:

Private Sub CommandButton1_Click()
    Sheets("Main Sheet").Range("A8").Formula = "=LOOKUP(2,1/(DATA!L1:L20212<>""""),DATA!L1:L20212)"
End Sub

注意公式(<>"""")中有4个双引号。需要作为字符串一部分写入的字符串中的引号需要使用另一个双引号字符进行转义,否则代码就是字符串的开头/结尾。


<强>附录

要在评论中回答您的其他问题,可以在表单打开时删除此信息。您可以处理(UserForm_Activate)表单事件来实现此目的。例如,将以下内容添加到表单代码中:

Private Sub UserForm_Activate()
  Sheets("Main Sheet").Range("A8") = "" ' clear previous data
End Sub

这意味着当事件触发时,即表格被激活&#34;,范围内的任何先前数据&#34; A8&#34; &#34;主要表&#34;将被清除。


ADDENDUM 2

清除范围内的值&#34; A8&#34; &#34;主要表&#34; 打开工作簿时(我以前的解决方案仅在打开用户窗体时清除),然后您需要在工作簿中添加事件处理程序。

打开ThisWorkbook Excel对象并将其添加到:

Private Sub Workbook_Open()
  Sheets("Main Sheet").Range("A8") = "" ' clear previous data
End Sub

打开工作簿时会触发此事件(Workbook_Open)。 ThisWorkbook对象中添加此代码非常重要。

相关问题