[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『違うシートへの転記 (続き)』(栗吉)
こちらで教わりうまく作動するのですが、シートが横長でみにくいので、項目を途中から違うシート(一覧2)に移動させたいのです。
移動は、A2,F5,G5,D3,I27,I28,I29,I30,I31,I32,I33,I34,I35,I36,I37 の以上です。
よろしくお願い致します。
↓教わったコードです。
Sub Test1()
Dim c As Range Dim v As Variant Dim x As Long
With Sheets("訪問シート入力") With .Range("A2,F5,G5,D3,C4,C5,H5,J5,J1,J2,J3,J4,L5,I9,J9,K9,L9,J11,k11,L11,J13,J14,J15,L15,J17,L17,K19,K20,L20,K21,K22,K23,K24,I27,I28,I29,I30,I31,I32,I33,I34,I35,I36,I37") ReDim v(1 To .Count) For Each c In .Cells x = x + 1 v(x) = c.Value Next End With End With
With Sheets("一覧") .Range("A" & .Rows.Count).End(xlUp).Offset(1).Resize(, UBound(v)).Value = v End With
End Sub
< 使用 Excel:Excel2010、使用 OS:WindowsXP >
.Range("A2〜 の中身と、With Sheets("一覧")のシート名を変更して2回実行すれば
いいだけだと思うのですが、今後のためにも自分で修正出来るようにコードを理解した方がいいですよ。
Sub test()
Call Test1("訪問シート入力", "一覧", "C4,C5,H5,J5,J1,J2,J3,J4,L5,I9,J9,K9,L9,J11,k11,L11,J13,J14," & _ "J15,L15,J17,L17,K19,K20,L20,K21,K22,K23,K24") Call Test1("訪問シート入力", "一覧2", "A2,F5,G5,D3,I27,I28,I29,I30,I31,I32,I33,I34,I35,I36,I37 ") End Sub Sub Test1(msh As String, shName As String, a As String) Dim c As Range Dim v As Variant Dim x As Long
With Sheets(msh) With .Range(a) ReDim v(1 To .Count) For Each c In .Cells x = x + 1 v(x) = c.Value Next End With End With
With Sheets(shName) .Range("A" & .Rows.Count).End(xlUp).Offset(1).Resize(, UBound(v)).Value = v End With End Sub
(ウッシ) 2015/08/06(木) 15:59
>>項目を途中から違うシート(一覧2)に移動させたいのです。 >>移動は、A2,F5,G5,D3,I27,I28,I29,I30,I31,I32,I33,I34,I35,I36,I37 の以上です。
よくわかりません。
>>A2,F5,G5,C4,C5,H5,J5,J1,J2,J3,J4,L5,I9,J9,K9,L9,J11,k11,L11,J13,J14,J15,L15,J17,L17,K19,K20,L20,K21,K22,K23,K24,I27,I28,I29,I30,I31,I32,I33,I34,I35,I36,I37
これらのセルの途中から? それとも、これとは関係なく、あらたに A2,F5,G5,D3,I27,I28,I29,I30,I31,I32,I33,I34,I35,I36,I37 を対象?
前者であれば【途中から】ではないですし、D3 などは、なかったセルですね?
後者だとすれば、A2,F5,G5,D3,I27,I28,I29,I30,I31,I32,I33,I34,I35,I36,I37 の途中からとは、どこからでしょう?
(β) 2015/08/06(木) 16:11
すみませ(β)さん。説明不足で。
("A2,F5,G5,D3,C4,C5,H5,J5,J1,J2,J3,J4,L5,I9,J9,K9,L9,J11,k11,L11,J13,J14,J15,L15,J17,L17,K19,K20,L20,K21,K22,K23,K24,I27,I28,I29,I30,I31,I32,I33,I34,I35,I36,I37")
↑上のコードの中から【A2,F5,G5,D3】は「一覧」「一覧2」に両方に入り、続きで次のコードから「一覧2」に転記→【I27,I28,I29,I30,I31,I32,I33,I34,I35,I36,I37 】としたいのです。
"訪問シート入力"のシート内でボタンを押すと「一覧」と「一覧2」に同時に転記するVBAを作成したいのです。
「一覧」に転記するセルは
("A2,F5,G5,D3,C4,C5,H5,J5,J1,J2,J3,J4,L5,I9,J9,K9,L9,J11,k11,L11,J13,J14,J15,L15,J17,L17,K19,K20,L20,K21,K22,K23,K24")
「一覧2」に転記するセルは("A2,F5,G5,D3,I27,I28,I29,I30,I31,I32,I33,I34,I35,I36,I37 ")です。
エクセルで一行に入ると横にのびて見ずらかったので。
(すみません。D3は抜けていたので追加したんです)
よろしくお願い致します。
2015/08/06(木) 15:59 の
Sub test()
をご自分で修正して試して下さい。
(ウッシ) 2015/08/06(木) 17:21
まず、レスは編集で書きこむのではなく、下のコメント欄に記入してアップしてください。 でないと、だれがいつアップしたレスかがわからないので。
さて、ウッシさんのコメント、
>>後のためにも自分で修正出来るようにコードを理解した方がいいですよ。
この通りです。
>>Sub test() をご自分で修正して試して下さい。
ちょっとだけヒントを。
βがアップした Test1 を ウッシさんが【共通プロシジャ】に仕立て上げておられます。
Call 共通プロシジャ名(転記元シート名,転記先シート名,転記元セル群)
このようにして使います。
今回の場合、一覧に転記するセル群、一覧2に転記するセル群は、栗吉さん自身が、整理してアップしていますよね。 (β) 2015/08/07(金) 06:12
すみませんでした。
これから挑戦してみます。
ありがとうございます。
(栗吉) 2015/08/07(金) 08:50
挑戦してみましたが、共通プロシージャは自分には使えませんでした。
自分なりに作ってみました。
Sub Test3()
Dim c As Range Dim v As Variant Dim x As Long
With Sheets("訪問シート入力") With .Range("A2,F5,G5,D3,C4,C5,H5,J5,J1,J2,J3,J4,L5,I9,J9,K9,L9,J11,k11,L11,J13,k13,l13,J14,J15,L15,J17,L17,K19,K20,L20,K21,K22,K23,K24") ReDim v(1 To .Count) For Each c In .Cells x = x + 1 v(x) = c.Value
Next End With End With
With Sheets("一覧") .Range("A" & .Rows.Count).End(xlUp).Offset(1).Resize(, UBound(v)).Value = v End With
x = 0 With Sheets("訪問シート入力") With .Range("A2,F5,G5,D3,J2,I27,I28,I29,I30,I31,I32,I33,I34,I35,I36,I37") ReDim v(1 To .Count) For Each c In .Cells x = x + 1 v(x) = c.Value
Next End With End With
With Sheets("一覧2") .Range("A" & .Rows.Count).End(xlUp).Offset(1).Resize(, UBound(v)).Value = v End With
End Sub
ありがとうございました。
(栗吉) 2015/08/27(木) 15:32
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.