2017-12-06 11 views
1

セルの参照に問題があり、ソリューションが存在するかどうかわかりません。 VBAコードを使用してExcel VBA:セルを参照する

私は、構文を使用して別のセルにセルに参照を書いている:

activecell.formula = "=" & Cells(A1).address 

今私は、細胞の数千人のために、この数式をコピーする必要があります。各セルは、cell (A1,A2,A3....A120..)というシーケンシャルを参照する必要があります。

私が持っている問題は

Cells(A1).address

を使用すると、それはCells(A1)を修正することです。私がオートフィル機能を使用すると、何千ものセルがすべて同じcells(A1)を参照していますが、ダイナミックで参照する必要がありますが、次に参照するときはcell (A2,A3,A4..)です。 loopと固定参照を使用して各セルに数式を書き込むと、コードが実行されるまでに数時間かかることになります(前に説明したように数千のセルがあります)。

私は自動フィル機能を使用する必要があります

activecell.formulaR1C1 = ... 

ただし、セル(A1)は常にアクティブセルから同じ距離にあるとは限りません。

via VBA私はactivecellからどのくらい離れているかを計算できますが、このデータを表記法R1C1でどのように使用できますか?

ので、私はを参照したいれる第1のセル、(今回は)だから、行100及び列3上で計算することができ

row.count 

機能を使用して、私が持っていることを言うことができます:LASTROWを= 100、column = 3.マクロを実行するたびに行100が異なることに注意してください。当然の

cell(5,5): =cells(100,3) 
cell(6,5): =cells(101,3) 
cell(7,5): = cells(102,3) 
..... 
cell(10005,5): = cells(10100,3) 

、私は」:私は次の結果を持っている必要があり

Sub problemsolved() 

Dim lastrow as string 
Dim RowL as string 
Dim CoL as string 

lastrow = activesheet.cells(rows.count, 1).End(xlUp).row 


cells(5,5).select 

Rol = lastrow - 5 
Col = 3 -5 


activecell.formulaR1C1 = "=R[Rol]C[Col]" 

selection.autofill Destination:=Range(cells(5, 5), cells(10005, 5)) 

end sub 

仮定LASTROW = 100 です:私のactivecellが、これは私が使用したいものですcells(5,5)

です構文を試しました:

activecell.formulaR1C1 = "=R[lastrow]C[3]" 

それはうまくいかないので、どうすればいいですか? 誰かがアイデアを持っていますか?

おかげ

+0

人々は完全にこのすべてを読むにはあまりにも忙しいですと仮定します。 「うまくいかない」とも言わなければなりません。すなわち、何をしたいのですか、何を試しましたか、どのような結果が得られましたか? – jdv

答えて

0

用途:

With ActiveSheet 
    .Range(.Cells(5,5),.Cells(10005,5)).FormulaR1C1 = "=R[" & RowL & "]C[" & col & "]" 
End With 

オートフィル

の必要はありませんので、

Sub problemsolved() 

Dim lastrow as Long 
Dim RowL as Long 
Dim CoL as Long 

lastrow = activesheet.cells(rows.count, 1).End(xlUp).row 



Rowl = lastrow - 5 
Col = 3 -5 


With ActiveSheet 
    .Range(.Cells(5,5),.Cells(10005,5)).FormulaR1C1 = "=R[" & RowL & "]C[" & col & "]" 
End With 

end sub 
+0

こんにちはスコット、あなたの助けに多くのおかげです。これはまさに私が探していたものです。相対表記を使って作業する方法ですが、いくつかの変数も使用しています。あなたは今日私の人生をより楽にしました。多くの多くの多くのありがとう! – Quadra