[[20190227202725]] 『特定の単語を起点にした範囲を切り取りして別の場』(ブルー) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『特定の単語を起点にした範囲を切り取りして別の場所に貼り付けるには』(ブルー)

いつもお世話になっております
売上という単語があるセルから6列×5行の範囲を切り取りして同一シートの別の場所に貼り付けるにはどうすればいいでしょうか
尚切り取りの範囲は同一シートには複数あります
判りにくいかもしれませんがよろしくおねがいします

< 使用 Excel:Excel2010、使用 OS:Windows7 >


マクロですか?

(マナ) 2019/02/27(水) 20:38


できればマクロでしたいです書き忘れてました
(ブルー) 2019/02/27(水) 20:51

>同一シートの別の場所に

具体例を挙げて説明していただけますか

(マナ) 2019/02/27(水) 20:55


月 日  場所 支店 とあって支店の横のセルに貼り付けたいです
よろしくおねがいします
(ブルー) 2019/02/27(水) 21:12

>月 日  場所 支店


売上の位置関係に規則性はありますか?

(マナ) 2019/02/27(水) 21:16


規則性はありません

(ブルー) 2019/02/27(水) 21:24


では、売上が10箇所あるとして
支店も10箇所あるはずですが、
どの支店の横に貼り付けるのですか。

(マナ) 2019/02/27(水) 21:27


そういう意味ですね失礼しました
月 日  場所 支店

ここより下を切り取り
売上

月 日  場所 支店みたいに
月と月の間に切り取りたいデータがあります
判りにくいかもしれませんがよろしくおねがいします

(ブルー) 2019/02/27(水) 21:35


ということは、
売上の列は固定ですか?
支店の列も固定ですか?

変動するのは行だけなのかという意味です。

(マナ) 2019/02/27(水) 21:38


そうです変動するのは行です
(ブルー) 2019/02/27(水) 22:20

 Option Explicit

  Sub test()
    Dim 支店列 As Long
    Dim 売上列 As Long
    Dim c As Range
    Dim dic As Object
    Dim k

    支店列 = 6
    売上列 = 1

    Set c = Columns(支店列).Find(what:="支店", after:=Cells(Rows.Count, 支店列), Lookat:=xlWhole)
    If c Is Nothing Then Exit Sub

    Set dic = CreateObject("scripting.dictionary")

    Do
        Set dic(c.Address) = Columns(売上列).Find(what:="売上", after:=Cells(c.Row, 売上列))
        Set c = Columns(支店列).Find(what:="支店", after:=c)
        If c Is Nothing Then Exit Do
    Loop Until dic.exists(c.Address)

    For Each k In dic.keys
        dic(k).Resize(5, 6).Cut Range(k).Offset(, 1)
    Next

 End Sub

(マナ) 2019/02/27(水) 22:28


これで大丈夫です解決しました
(ブルー) 2019/03/06(水) 20:02

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.