2016-06-06 30 views
0

让我更好地解释。如果A1的值是“0”,那么在A2中我想要公式= vlookup(B1,C1:E3,2,0),如果A1的值是“1”,那么我只需要A2的空白单元格值。我想在打开excel时发生这个宏。我认为这会工作,但如果你想在代码在一个特定的表,而不是正好是活跃的一个运行是不想要在单元格中编写公式,如果x = y,则使用VBA空白单元

Sub test() 

    Dim indicator As Value 
    Dim result As String 

    indicator = Range("A1").Value 

    If indicator = 0 Then result = "=VLOOKUP(A3,C1:D3,2,0)" 

    Range("a2").Value = result 

End Sub 
+1

请查看此处的帮助以了解如何提出问题。这不是免费的脚本订购服务。 – teylyn

+0

@teylyn OP发布了他的代码,我们应该帮助他。他没有要求一个免费的脚本。 – nicomp

+0

@nicomp检查时间戳。他在我的评论后发布了他的代码。 – teylyn

回答

1
ThisWorkbook节把这个

Sub Workbook_open() 

If Range("A1") = 0 Then 
    Range("A2").Formula = "=vlookup(B1,C1:E3,2,0)" 
ElseIf Range("A1") = 1 Then 
    Range("A2").ClearContents 
Else 
End If 

End Sub 
+0

您可能想要限定工作表,否则最后一个活动工作表将成为目标,可能不需要。 – teylyn

+0

我知道,但在问题中未指定任何工作表,因此没有在答案中指定工作表。 – ballsy26

+0

谢谢@ ballsy26,那很好。只是好奇 - 什么表示这个宏在工作簿打开时出现?它是否属于“ThisWorkbook”对象? –

1

当文件上次保存时,请尝试下列操作:

Sub Workbook_open() 
Dim ws As Worksheet 

' define the worksheet to be changed here: 
Set ws = ThisWorkbook.Worksheets("Sheet5") 

If ws.Range("A1") = 0 Then 
    ws.Range("A2").Formula = "=vlookup(B1,C1:E3,2,0)" 
ElseIf Range("A1") = 1 Then 
    ws.Range("A2").ClearContents 
Else 
End If 

End Sub 
相关问题