2016-09-13 3 views
0

ワークシートをフィルタリングしようとしています(列DL経由)。私は列のDQに数式を挿入する必要がありますが、表示されているセルのみに挿入する必要があります。以前は以下のコードを使用していましたが、セルDQ3の特定の参照は必要ありません。このセルは変化する可能性があり、したがって誤った式がコピーされて貼り付けられます。データをフィルタリングして可視セルに式を挿入するマクロ

Dim LastRow As Long 
Dim FinalRow As Long 

LastRow = Range("B" & Rows.Count).End(xlUp).Row 
Range("DL2:DL" & LastRow).AutoFilter Field:=116, Criteria1:= _ 
    "ABC" 

Range("DQ3").Copy 

FinalRow = Cells(Rows.Count, "B").End(xlUp).Row 
Range("DQ3:DQ" & FinalRow).Select 
ActiveSheet.Paste 

Iは、以下のコードを試みたが、それは、「実行時エラー 『1004』を返す:アプリケーション定義またはコードの最終行にオブジェクト定義エラー:

Dim LastRow As Long 
Dim FinalRow As Long 

LastRow = Range("B" & Rows.Count).End(xlUp).Row 

Range("DL2:DL" & LastRow).AutoFilter Field:=116, Criteria1:= _ 
    "ABC" 

FinalRow = Range("B" & Rows.Count).End(xlUp).Row 
Range("DQ2:DQ" & FinalRow).FormulaR1C1 = "=(RC[-1]-RC[-2])" 

私も試みこのコード:

Dim LastRow As Long 
Dim FinalRow As Long 


LastRow = Range("B" & Rows.Count).End(xlUp).Row 

Range("DL2:DL" & LastRow).AutoFilter Field:=116, Criteria1:= _ 
    "ABC" 


FinalRow = Range("B" & Rows.Count).End(xlUp).Row 
Set RNG = Range("DQ2:DQ" & FinalRow).SpecialCells(xlCellTypeVisible) 

RNG = "=(RC[-1]-RC[-2])" 

これはエラーなく動作しますが、列DQに任意のデータを記入していません

アン。どのようにエラーを取り除くか、私の元の目標を達成する方法に関する提案?私は何をしようとしているか分からないが、これは私が立ち往生した場所である。

ありがとうございます!

答えて

0

以下のコードを使用して目標を達成することができました。他の誰かが同じ問題を抱えている場合に備えて転記してください。

With ActiveSheet.Range("DQ2:DQ" & Cells(Rows.Count,2).End(xlUp).Row).SpecialCells(xlCellTypeVisible) 
    .Cells.FormulaR1C1 = "=((RC[-1]-RC[-2])"` 
    .Cells.FillDown` 
    Worksheets("WorksheetName").Columns(10).Calculate 

End With 

乾杯!

関連する問題