非ネイティブ動作であるため、コピーを実行するために小さなVBAマクロを作成し、それをキーボードショートカットに割り当てる価値があります。
ここでは、セルを右に1つコピーし、リファレンスセルを1つ下に更新する簡単な例を示します(式の絶対/相対設定を保持します)。
これは、A1
スタイルアドレスを前提としています。アクティブなセルに単一のセルを参照する数式が含まれている場合にのみ機能します(そうでない場合は静かに終了します)。宛先セルの内容を静かに上書きします。
Sub CopyToRight()
Dim clFrom As Range
Dim clAddr As Range
Dim addr As String
On Error GoTo EH
Set clFrom = ActiveCell
If clFrom.Formula Like "=*!*" Then
Set clAddr = Range(Mid(clFrom.Formula, 2))
If clAddr.Count = 1 Then
If clFrom.Formula Like "=*!$*$*" Then
addr = clAddr.Offset(1, 0).Address(True, True)
ElseIf clFrom.Formula Like "=*!$**" Then
addr = clAddr.Offset(1, 0).Address(False, True)
ElseIf clFrom.Formula Like "=*!*$*" Then
addr = clAddr.Offset(1, 0).Address(True, False)
Else
addr = clAddr.Offset(1, 0).Address(False, False)
End If
clFrom.Offset(0, 1).Formula = "='" & clAddr.Worksheet.Name & "'!" & addr
End If
End If
clFrom.Offset(0, 1).Select
EH:
End Sub
ダグのおかげで、私は "マップ"を設定する必要がある8000以上のアイテムを除いてそれを実行します。私はこれをやり始め、簡単な方法であることを念頭に置いて考えました。私はcurently間接的な議論を使用しています...しかし、それは正しいことを得るためにいくつかの値を変更する必要があります。私は簡単な方法がなければならないことを知っており、私はあまりにも揚げてそれを考えています。 – user1123546
コピー元のシートと目的の最終結果について、より詳しく説明する必要があります。 1つのように、8000列に読み込みたい8000行のデータがあるようです。数式をドラッグすると予想されるので、データを中間シートに移すだけで十分ですが、他の問題があるように思えます。 –
+1。あなたは 'TRANSPOSE'式のdirectlty(配列が入力された)または' OFFSET'も使用して冷静です。 'TRANSPOSE'はより透過的で監査可能です。 – brettdj