[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロの改造』(ギラくん)
いつもお世話になります
私のhttps://www.excel.studio-kazu.jp/kw/20210503222756.html
のマクロにいくつか改造したいのですが方法を教えて下さい
1 各シートのa1の文字をp列に表示
2 ファイル名を各シートのq列に表示
で一つにまとめたいのですが
現在のコードは
Private Sub sh_check() Dim newSh As String Dim Sh As Worksheet, myFlag As Boolean newSh = "全データ" '---まとめ用のシート名です myFlag = False '---まとめ用のシートが有ったら True /無かったら False にするフラッグです For Each Sh In ThisWorkbook.Worksheets If Sh.Name = newSh Then myFlag = True '----全データシートのデータをクリアし、先頭へ移動します Worksheets(newSh).Cells.Clear 'ClearContentsではない。(結合セル対策) Worksheets(newSh).Move before:=Sheets(1) Exit For End If Next Sh '----全データシートを先頭へ追加します If myFlag = False Then ActiveWorkbook.Worksheets.Add(before:=Worksheets(1)).Name = newSh End If End Sub と Sub まとめ改13()
Dim i As Integer Dim stRW As Long Application.ScreenUpdating = False Call wsnamae sh_check '----全データシートの有無をチェックします stRW = 1 For i = 2 To Worksheets.Count With Worksheets(i) With Application.Range(.Cells(1, 1), .UsedRange) .Cells.Copy Worksheets(1).Cells(stRW, 1).PasteSpecial xlPasteValuesAndNumberFormats End With '★ここ★ With Application.Range(.Cells(1, 1), .UsedRange) .Cells.Copy Worksheets(1).Cells(stRW, 1).PasteSpecial xlPasteFormats stRW = stRW + .Rows.Count End With End With Next i Worksheets(1).Activate END sub ですよろしくお願いします
< 使用 Excel:Excel2019、使用 OS:Windows10 >
1 各シートのa1の文字をp列に表示
→どのシートの、P列の何行目に表示(転記?)したいのですか?
2 ファイル名を各シートのq列に表示
→P列の何行目に表示(記入?)したいのですか?
■2
'★ここ★
↑はなんで残してるんですが?(前トピックで、そこに「End With」がないのがおかしいと指摘したものですが・・・)
(もこな2) 2021/06/08(火) 22:42
1 各シートのa1の文字をp列に表示 →どのシートの、P列の何行目に表示(転記?)したいのですか? 各シートのa1の文字をp列の4〜22行目に表示したいのですが
2についてもQ列の4〜22行目です
うまく説明できなくてすいません
(ギラくん) 2021/06/08(火) 22:50
Sub 見切り発車() Dim i As Long
For i = 2 To Worksheets.Count
'【1番目】のシートのP列4行目以降に、【2番目以降】のシートのA1セルの値を書き出し Worksheets(1).Cells(i + 2, "P").Value = Worksheets(i).Range("A1").Value
'【2番目以降】のシートのQ4〜Q22セルに自ブック名を書き込み Worksheets(i).Range("Q4:Q22").Value = ThisWorkbook.Name Next End Sub
(もこな2) 2021/06/09(水) 10:38
'【1番目】のシートのP列4行目以降に、【2番目以降】のシートのA1セルの値を書き出し Worksheets(1).Cells(i + 2, "P").Value = Worksheets(i).Range("A1").Value
のところが私の説明が下手でした
そうではなく
シート2のa1セルの値をシート2のp列に書き出し
シート3のa1セルの値をシート3のp列に書き出し
以降同様
みたいにしたいです
説明が下手でした申し訳ございません
(ギラくん) 2021/06/09(水) 19:29
ヒントというか、ほぼ答えが「2」にありませんか?
(もこな2) 2021/06/09(水) 20:07
Sub 見切り発車() Dim i As Long
For i = 2 To Worksheets.Count
'【1番目】のシートのP列4行目以降に、【2番目以降】のシートのA1セルの値を書き出し Worksheets(i).Range("r4:r22").Value = Worksheets(i).Range("c1").Value
'【2番目以降】のシートのQ4〜Q22セルに自ブック名を書き込み Worksheets(i).Range("Q4:Q22").Value = ActiveWorkbook.Name Next End Sub
でうごきました
ありがとうございました
(ギラくん) 2021/06/09(水) 20:51
'【2番目以降】のシートのQ4〜Q22セルに自ブック名を書き込み Worksheets(i).Range("Q4:Q22").Value = ActiveWorkbook.Name となってますが 開始の行は4行目で良いのですが 終わりの行を可変することは可能でしょうか つまり データが15行しかない場合は15行目まで 逆に25行あるデータの場合は25行目
みたいにしたいです
わかりにくいかもしれませんがよろしくお願いします
(ギラくん) 2021/06/09(水) 22:54
(もこな2) 2021/06/09(水) 23:22
すいませんが教えて下さい
よろしくお願いします
(ギラくん) 2021/06/11(金) 20:14
Worksheets(i).Range("r4:r" & 最終行).Value = Worksheets(i).Range("c1").Value
みたいにしたらどうですか?
(もこな2) 2021/06/11(金) 20:33
Sub 見切り発車() Dim i As Long Dim 最終行 For i = 1 To Worksheets.Count Call wsnamae 最終行 = Range("C3").End(xlDown).Row '【1番目】のシートのP列4行目以降に、【2番目以降】のシートのA1セルの値を書き出し Worksheets(i).Range("P4:P" & 最終行).Value = Worksheets(i).Range("c1").Value これでううごきました ありがとうございます
(ギラくん) 2021/06/11(金) 22:45
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.