2017-03-19 4 views
-1

私は行を追加し、上の行から数式をプルダウンするマクロを持っています。私の絶対的な言及を除いて、これはうまくいきます。私は下の私の希望する状態で配信するコードが必要です。私はこれで初心者ですので、私のコードに追加すれば大いに感謝します!Excel VBA - 絶対参照で行を追加する。どのように数値シーケンスを続けるのですか? 1,2,3など

現状 - VBA(下)行のコードを追加提供します

$B$1 
$B$1 
$B$1 

所望の状態に - コード提供:

$B$1 
$B$2 
$B$3 

現在のVBAコードを次のとおりです。

Sub Insert_Row() 
ActiveSheet.Unprotect 
Application.Goto Reference:="Insert_Row" 
Dim insRows As Long 
insRows = ActiveCell.Row 
Selection.EntireRow.Insert 

Range("B" & insRows - 1, "B" & insRows - 1).Select 
Selection.AutoFill Destination:=Range _ 
("B" & insRows - 1, "B" & insRows), Type:=xlFillValues 

ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:=True _ 
    , AllowFiltering:=True, AllowDeletingRows:=True 
End Sub 

ありがとう! !

+3

本当に相対参照が必要な場合は、なぜ絶対参照を使用していますか? – YowE3K

+0

シーケンスを続けるために相対参照に変換する必要があるためです。 1,2,3。私はセルを絶対にしたいので、フィルタリングしてソートしても内容が整っていないのです!値の誤り。私は、シーケンスを増やした後、例えば列全体を絶対にするコードを追加するだけでこの問題を解決しました。例えば、B1、B2、B3、B4です。 $ B $ 1、$ B $ 2などです。このスレッドの回答セクションにコードを掲載します。 –

答えて

1

私はVBAコードで完了したら、列Bの絶対にすべてのセルを絶対にすることでこの問題を解決することができました。私は次のようにしました:

Dim LastCell As Range 

Set LastCell = Range("B" & Rows.Count).End(xlUp) 
Range("B1", LastCell).Formula = Application.ConvertFormula _ 
(Formula:=Range("B1", LastCell).Formula, FromReferenceStyle:=xlA1, _ 
ToReferenceStyle:=xlA1, ToAbsolute:=xlAbsolute) 
関連する問題