[[20220117153103]] 『全体用 手書き用というシートのB列のデーターを別』(sakai) >>BOT

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

 

『全体用 手書き用というシートのB列のデーターを別シート一括入力』(sakai)

手書き用という名前のシートのB列のデーターを別シート一括入力したい
別シートが始めの2文字が全体というシートになっている。

やりたいこと

1.手書き用という名前のシートのB列にデーターを入力する

2.但し、このデーターをソートする場合がある

3.1.2.が終了したら、これと同時に全体という2文字のある
  8つのシートのB列にデーターが入力できている状態にしたい

4.マクロまたは関数でやりたい

< 使用 Excel:Excel2016、使用 OS:Windows10 >


 全体ほにゃららシートのB列に入力できている状態、というのは
 手書き用のシートそのままの順番で問題ないのですか?

 手書き用のB2=全体のB2
 手書き用のB3=全体のB3 ...
 と全てイコールになりますか?
(.:*.ゆ ゅ) 2022/01/17(月) 16:00

手書き用のB2=全体のB2 手書き用のB3=全体のB3 ... と全てイコールになりますか?

説明が下手ですみません。

B列のデーターをその都度、8シートのB列にコピペするのを軽減とたいと
いうことですと言えばわかって頂けますか。説明が下手ですみません。
(sakai) 2022/01/17(月) 16:46


 数式でもマクロでも対応できますが、ソートするとのことなので
 データ量によっては数式は重くなってしまうためマクロを推奨します。

 因みにですが、該当のブックには手書き用と全体ほにゃららシート以外のシートは存在しますか?
 しないのであれば、手書き用シートの位置をシートの1番目に固定は可能ですか?
 (恐らくそのほうが理解がしやすいソースになると思っただけで、不可だったとしても動作はします)
(.:*.ゆ ゅ) 2022/01/17(月) 17:23

 >別シートが始めの2文字が全体というシートになっている。
 シート名が「全体A」「全体B」などと書いた方が分かりやすい。

 >手書き用のB2=全体のB2
 >手書き用のB3=全体のB3 ...
 >と全てイコールになりますか?
 と
 >B列のデーターをその都度、8シートのB列にコピペする
 は同じだと思うが。

(・・・) 2022/01/17(月) 17:33


因みにですが、該当のブックには手書き用と全体ほにゃららシート以外のシートは存在しますか?   存在しています。2000件ほどの処理をするものもあります。

しないのであれば、手書き用シートの位置をシートの1番目に固定は可能ですか?   他のデーターもあったりで、1番目に固定はやりにくいと思います。

シート名が「全体A」「全体B」などと書いた方が分かりやすい。   分かりますが、シート名は変えるとわかりにくくなります。

以上、大変申し訳ありませんが、よろしくお願いします。
(sakai) 2022/01/17(月) 18:18


どこで詰まっているのかわからないけど↓のようなことではないのですか?
    Sub まくろ()
        Dim SH As Worksheet

        Worksheets("手書き用").Range("B:B").【ソートする命令】

        For Each SH In Worksheets
            If SH.Name Like "*全体*" Then
                Worksheets("手書き用").Range("B:B").【コピーする命令】 SH.Range("B1")
            End If
        Next SH           
    End Sub

(もこな2 ) 2022/01/17(月) 18:30


下記のようにして、実行しましたが、「エラー438 オブジェクトはこのプロパティまたはメソッドをサポートしていません」というエラーメッセイジが出てしまいました。
初心者でよくわかりません。どこを修正したらよろしいでしょうか、お教えいただけませんか。よろしくお願いします。

Sub まくろ()

        Dim SH As Worksheet

        '【ソートする】

        Worksheets("手書き用").Range("B:B").Sort Range("B2").xlAscending

        For Each SH In Worksheets
            If SH.Name Like "*全体*" Then

       '【コピーする】

         Worksheets("手書き用").Range("B:B").Copy ActiveCell.SH.Range("B1")

            End If
        Next SH
    End Sub

(sakai) 2022/01/18(火) 09:47


>シート名は変えるとわかりにくくなります。
別シートが始めの2文字が全体となっているという書き方ではなく
シート名が全体・・・となっているという書き方が読み手に取って
分かりやすいということでした。

(・・・) 2022/01/18(火) 10:58


以下それぞれ、どういうように考えて記述したのですか?

 Worksheets("手書き用").Range("B:B").Sort Range("B2").xlAscending
                                          ~~~~~~~~~~~~~~~~~~~~~~~

 Worksheets("手書き用").Range("B:B").Copy ActiveCell.SH.Range("B1")
                                          ~~~~~~~~~~

(もこな2 ) 2022/01/18(火) 11:20


想像するに、こうだったりしませんか?
    Sub まくろ_2ケ所修正()
        Dim SH As Worksheet

        '【ソートする】
        Worksheets("手書き用").Range("B:B").Sort Key1:=Worksheets("手書き用").Range("B2"), Order1:=xlAscending, Header:=xlYes

        For Each SH In Worksheets
            If SH.Name Like "*全体*" Then
                '【コピーする】
                Worksheets("手書き用").Range("B:B").Copy Destination:=SH.Range("B1")
            End If
        Next SH
    End Sub

(もこな2 ) 2022/01/18(火) 11:36


ほんとうありがとうございました。完成できました。コピペをその都度やるしかないのかと思っていましたが、助かりました。実行後ものの1分もかからず完成しました。驚きと感謝です。色々の方々にお礼致します。
凄いです。何とお礼申し上げてよいやら、ありがとうございました。今後とも、色々と教えて頂けると有り難いです。よろしくお願いします。
(sakai) 2022/01/18(火) 12:03

コメント返信:

[ 一覧(最新更新順) ]


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