2017-03-05 6 views
-1

私はVBAコードを持っていますが、私はこれを記録しました。それを記録している間、それはオフセット形式で数式を書いた。だから私は範囲を変更する方法を知らない私はVlookup式をExcelで再フォーマットする必要があります

私はどのように変換できますか?通常、 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 

答えて

1

あなたはあなたの不要SelectSelectionの一部を削除し、あなたの最初のいくつかのコード行置き換えることですることができます、あなたが必要とするあなたの式について

Columns("E:E").Copy Range("L1") 

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

付きをFormulaR1C1Formulaに置き換えるには、下記のコードを参照してください。

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 

編集1:ちょうど式のコード行を修正:

Range("E12").Formula = "=IFERROR(VLOOKUP(B3,C.A.!B$3:G" & LastRow & ",4,0),IF(ISBLANK('2017'!L12)," & Chr(34) & Chr(34) & ",'2017'!L12))" 
+0

@efeあなたは上記の私の答えを読んだtercanことができますか?どんなフィードバック? –

+0

私はちょうどそれを読んでみましたが、それは上のエラーを与えた「レンジ( 『E12』)。式= _ "」、私は 「サブduzenle(下記参照、なぜ知らない) 列(" E: ")コピー範囲(" E L1 ") レンジ(" E12 CA」) LASTROW = .Cells(.Rows ")ワークシート(で Application.CutCopyMode = Falseの を選択します。"。 Count( "G"))End(xlUp).Row End With 範囲( "E12")数式= _ISBLANK( '2017'!L12) ''、 '2017'!L12))= IFERROR(VLOOKUP(B3、CA!B $ 3:G "&LastRow& "、4,0) "' –

+0

' _'文字を使用すると、長いコマンドを複数の行に分割できます。行の最後の文字でなければなりません。文を分割しない場合は、 '_'文字を削除してください。 – teylyn

関連する問題