Excelmacrosvba上的查找公式

嗨,我是新的macros观macros观。 我想为vlookup创build一个macros,以便我可以应用到很多单元格,但是它不起作用。

Sub haha() Dim wb As Workbook Dim ws, ws1 As Worksheet Set wb = ActiveWorkbook Set ws = ActiveWorkbook.Sheets(1) Set ws1 = ActiveWorkbook.Sheets(2) wb.Activate ws1.Select Range("E1").Formula = "=+VLOOKUP(" & ws1.Range("C6") & "," & ws.Range("c7:d10") & ",2,FALSE)" End sub 

我想在当前表格中查找一个值到另一个表格的范围,以返回一个唯一的值。 请帮忙! 🙂

只要更换这三行:

 wb.Activate ws1.Select Range("E1").Formula = "=+VLOOKUP(" & ws1.Range("C6") & "," & ws.Range("c7:d10") & ",2,FALSE)" 

有了这个:

 ws1.Range("E1").Formula = "=VLOOKUP(C6," & ws.Range("C7:D10").Address(External:=1) & ",2,FALSE)" 

ws1.Range("C6")部分中,不需要sheetaddress ,在这种情况下,由于单元格位于公式所在的同一个表单中,所以ws1.Range("C6")将始终返回C6

至于ws.Range("c7:d10")部分,您需要“外部参照”,因为它指的是另一张纸。 尽pipeRange.Address PropertyExternal引用包含文件名,但是它会在公式进入同一工作簿时被删除。

看一下这个。

 Sub haha() Dim wb As Workbook Dim ws As Worksheet, ws1 As Worksheet Dim rng As Range Set wb = ActiveWorkbook Set ws = ActiveWorkbook.Sheets(1) Set ws1 = ActiveWorkbook.Sheets(2) wb.Activate Set rng = ws.Range("c7:d10") ws1.Range("E1").Formula = "=VLOOKUP(" & ws1.Range("C6").Address & "," & rng.Worksheet.Name & "!" & rng.Address & ",2,FALSE)" End Sub