前提・実現したいこと
VBAでマクロを組んでおります。
実現したいこととしては、O列~最終列まで範囲で参照しているところを、直接的に1:1対応で参照したいと考えております。
ここに質問の内容を詳しく書いてください。
やりたいこととしては、
①O列に@が含まれている数式を検索して、
②そのセルの参照元を検索し、
③まずO列において、1:1対応で参照元から参照先に入れ込み、
④参照先のセルを起点に、最終列まで(O列は固定で、最終列まで)右にコピペする。
これらを実現するようなマクロを実装したいと考えております。
①に関しては、FindNext関数を用いて、以下のように検索しようと考えております。
Sub Find@()
Dim rng As Range, tempRng As Range, searchRng As Range
Application.ScreenUpdating = False Set searchRng = Range("O:O") Set rng = searchRng.Find(What:="@", LookIn:=xlFormulas) Set tempRng = rng Call ApplyStyle_Timeseries
End Sub
Sub ApplyStyle_Timeseries()
Do While Not rng Is Nothing
Debug.Print rng.Row
Set rng = searchRng.FindNext(rng)
Range(rng.Address).Select
If IsNumeric(Selection.End(xlToRight).Value) = False Or Selection.End(xlToRight).Value = "" Then
Range(Selection, Selection.End(xlToRight).Offset(0, -1)).Select
Else
Range(Selection, Selection.End(xlToRight).Offset(0, 0)).Select
End If
Loop
End Sub
より具体的に言うと、
こちらの1,2枚目の写真においてO153=@$O$118:@Y@118、P153=@$O$118:@Y@118となっていますが、
最終的にはO153=O118, P153=P118,Q153=Q118……Y153=Y118となるようにしたいと考えています。こちらは一例ですが、シート全体に入っている@の数式において、このように参照元と1:1対応で参照したいと考えております。
発生している問題・エラーメッセージ
②③を実現するにあたって、ネットで検索して「Precedents」プロパティを用いればよいのかと考えておりますが、実際にどのようにマクロに組み込んだらよいのか分かりかねる状況にあります。全くのVBA初心者ではありますが、何卒アドバイス等頂けますと幸甚でございます。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/15 02:48