2016-06-06 29 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 
相關問題