想要在单元格中写入公式,如果x = y,则使用VBA空白单元格

让我更好地解释。 如果A1的值是“0”,那么在A2我想要公式= vlookup(B1,C1:E3,2,0),如果A1的值是“1”,那么我只需要一个空白单元格值为A2 。 我想在打开excel时发生这个macros。 我以为这会工作,但事实并非如此

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 

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 

如果您希望代码在特定工作表上运行,而不是在上次保存文件时碰巧处于活动状态的代码,则可以尝试以下代码:

 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