よくありませんが、うまくいきますが、私は自分の答えを尋ねて提供しました。 前の質問
ただし、別のシートのセルをリンクしたいと思います。しかし、私が書いたプログラムでは、あるシートから別のシートへのセル間参照ができませんでした。
例
シート 1、列 A
シート 2、行 1
したい
Sheet1!A1 = Sheet2!A1
Sheet1!A2 = Sheet2!B2
これはひょっとしてあなたがしようとしていることですか?
Option Explicit
Sub Sample()
Dim cRange As Range, rrange As Range
Dim i As Long, j As Long
Dim cPrompt As String, cTitle As String
Dim rPrompt As String, rTitle As String
On Error GoTo Whoa
cPrompt = "Please Choose a Column without Header"
cTitle = "Specify Column Range"
rPrompt = "Please Choose Starting cell"
rTitle = "Specify row Range"
Set cRange = Application.InputBox(cPrompt, cTitle, Type:=8)
Set rrange = Application.InputBox(rPrompt, rTitle, Type:=8)
For i = 1 To cRange.Count
rrange.Offset(j).Formula = "=" & cRange.Parent.Name & _
"!" & cRange.Cells(1, i).Address
j = j + 1
Next i
Exit Sub
Whoa:
MsgBox Err.Description
End Sub
これは、次のようなINDIRECT関数を使用して、はるかに簡単な方法で実行できます。
=INDIRECT("Sheet1!R1C"&ROW()+4,FALSE)
これは、現在の行とオフセット値を使用して、現在の行を参照する最初の列に揃えます。数式を下にコピーすると、行番号は増加しますが、列参照を増やすために使用されます。