Vba 我需要在excel中重新格式化我的Vlookup公式

Vba 我需要在excel中重新格式化我的Vlookup公式,vba,excel,vlookup,Vba,Excel,Vlookup,我有一个VBA代码,你可以在下面看到,我把它录了下来。记录时,它以偏移量格式编写了公式。所以我不知道如何改变范围 我怎样才能皈依; R3C[-3]:R[1488]C[2]这通常是B$3:G1489 致: B$3:“G”列中最后一个活动单元格) 我该怎么做 Sub duzenle() Columns("E:E").Select Selection.Copy Range("L1").Select ActiveSheet.Paste Range("E12").Select Application.C

我有一个VBA代码,你可以在下面看到,我把它录了下来。记录时,它以偏移量格式编写了公式。所以我不知道如何改变范围

我怎样才能皈依;
R3C[-3]:R[1488]C[2]
这通常是
B$3:G1489

致:

B$3:“G”列中最后一个活动单元格)

我该怎么做

Sub duzenle()

Columns("E:E").Select
Selection.Copy
Range("L1").Select
ActiveSheet.Paste
Range("E12").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = _
    "=IFERROR(VLOOKUP(RC[-3],C.A.!R3C[-3]:R[1488]C[2],4,0),IF(ISBLANK('2017'!RC[7]),"""",'2017'!RC[7]))"
Range("E12").Select
Selection.AutoFill Destination:=Range(ActiveCell, ActiveCell.End(xlDown)), Type:=xlFillDefault
Range(ActiveCell, ActiveCell.End(xlDown)).Select
Columns("E:E").Select
Selection.Copy
Range("E1").Select
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=False
Columns("L:L").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Range("A1").Select
MsgBox "'C.A' Degerleri Guncellenmistir."

End Sub

您可以删除一些不必要的
选择
选择
,并替换您的前几行代码:

Columns("E:E").Select
Selection.Copy
Range("L1").Select
ActiveSheet.Paste
与:

关于您的公式,您需要将
公式1c1
替换为
公式
,请参见下面的代码:

With Worksheets("C.A.")
    LastRow = .Cells(.Rows.Count, "G").End(xlUp).Row '<--get last row with data in Column G from "C.A." sheet
End With

Range("E12").Formula = _
    "=IFERROR(VLOOKUP(B3,C.A.!B$3:G" & LastRow & ",4,0)...' <-- the rest of your formula

@你能读一下我上面的答案吗?有任何反馈吗?我刚刚读了这篇文章并尝试了一下,但它在“范围”(“E12”)上出现了一个错误。公式="”,我不知道为什么,请参见下面的“子duzenle()列”(“E:E”)。复制范围(“L1”)范围(“E12”)。选择Application.CutCopyMode=False和工作表(“C.A”)。LastRow=.Cells(.Rows.Count,“G”)。End(xlUp)。行以范围(“E12”)结尾.Formula=“=IFERROR(VLOOKUP(B3,C.A.!B$3:G“&LastRow&”,4,0),如果(ISBLANK('2017'!L12),“”,'2017'!L12))“'使用
\
字符,您可以将长命令拆分为几行。它必须是行中的最后一个字符。如果您不拆分语句,请删除
\uuu
字符。@efe-ter您可以在“编辑1”下尝试我编辑的代码吗?它是否如你所愿为你工作?
With Worksheets("C.A.")
    LastRow = .Cells(.Rows.Count, "G").End(xlUp).Row '<--get last row with data in Column G from "C.A." sheet
End With

Range("E12").Formula = _
    "=IFERROR(VLOOKUP(B3,C.A.!B$3:G" & LastRow & ",4,0)...' <-- the rest of your formula
Range("E12").Formula = "=IFERROR(VLOOKUP(B3,C.A.!B$3:G" & LastRow & ",4,0),IF(ISBLANK('2017'!L12)," & Chr(34) & Chr(34) & ",'2017'!L12))"