[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『シート1のデータをシート2へデータを転記』(みゆ・・・)
過去ログを確認してみましたが、なかなかわかりません。。 初心者なので悪戦苦闘中です。 どなたかご教授くださるとうれしいです。
シート1に請求書を作成しました。 簡単にいいますと・・・
Sheet1 の W5 を Sheet2 の B2、 Sheet1 の E8 を Sheet2 の C3、 Sheet1 の E9 を Sheet2 の D2、 Sheet1 の W14 を Sheet2 の Y2 ・・・・・・・・・・・・・・・・まだまだ続きます。
というようにSheet1で入力した内容をSheet2へデータを蓄積させたいのです。 Sheet2の先頭行は項目名を入れたいと思っています。 また、Sheet2のA列2には1番から番号を振っていきたいです。
Sheet1の請求書にデータを入力後、ボタンを作成し、Sheet2へ転記し転記後は、Sheet1へ戻って、再び新しい内容を入力しようと思っています。Sheet1の内容はクリアボタンを作成しました。
どなたか、初心者の私へ教えてください。。。
標準モジュールに以下を転記
Sub Test1() 'Sheet2の最終行の行番号を取得する変数宣言 Dim LastRow As Long 'Sheet2のA列の最終行の行番号を取得 LastRow = Sheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Row
'Sheet2のA1セルに番号を Sheets("Sheet2").Cells(LastRow + 1, 1).Value = LastRow ' Sheet2のB2セルにSheet1のW5セルの値を Sheets("Sheet2").Cells(LastRow + 1, 2).Value = Sheets("Sheet1").Range("W5").Value ' Sheet2のC2セルにSheet1のE8セルの値を Sheets("Sheet2").Cells(LastRow + 1, 3).Value = Sheets("Sheet1").Range("E8").Value ' Sheet2のD2セルにSheet1のE9セルの値を Sheets("Sheet2").Cells(LastRow + 1, 4).Value = Sheets("Sheet1").Range("E9").Value ' Sheet2のE2セルにSheet1のW14セルの値を Sheets("Sheet2").Cells(LastRow + 1, 5).Value = Sheets("Sheet1").Range("W14").Value
' Sheet1のA1セル選択 Sheet2を確認後、Sheet1へマクロボタン等の操作で移動するので 'あれば以下は省略 Sheets("Sheet1").Range("A1").Select
End Sub
でどうでしょうか。
(わかあゆ)
コードを入力してみたところ、以下の箇所がエラーとなります↓
LastRow = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
なぜでしょうか??
(みゆ・・・)
LastRow = Sheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Row
の誤りでした。。
(みゆ・・・)
かな?
(sanper)
うまくいきません・・・・・・・?
(みゆ・・・)
表示されたエラーを提示してはどうですか?
Sheet1 や Sheet2 は間違いなく存在していて、綴りは正しいですか? 文字列は半角、全角が異なっていても別のものと識別されます。 (Mook)
わかあゆ様にも謝罪します。
すみませんでした。
(sanper)
ちょっと話が かみ合いませんが、sanper さんの発言はどのことに関してでしょうか。
私のは ゆみ・・・さんの >コードを入力してみたところ、以下の箇所がエラーとなります↓ への確認のつもりでしたが。 (Mook)
私のコードの事です。
2を 2で 半角にして提示したつもりなのですが、
自分のコードを書き換えたため、Cells( の後に ドットが入ってしまいました。
それで、 上手く行きませんと 質問者さんに言われたので、
すみません と 送信致しましたら、
Mook様の すぐ後になってしまった次第です。
誤解を招くようで申し訳御座いませんでした。
(sanper)
インデックスが有効範囲にありません。 実行時エラー9
LastRow = Sheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Row ↑
(みゆ・・・)
やはり、Sheet2 がなさそうに見えますが、左から2番目がSheet2だとしたら
LastRow = Sheets(2).Cells(Rows.Count, 1).End(xlUp).Row としても一緒ですか?
了解です > sanper さん (Mook)
みゆ・・・さんへ
Mookさん の ご指摘のところなのですが、
>というようにSheet1で入力した内容をSheet2へデータを蓄積させたいのです。
と みゆさんのお言葉とおり
'Sheet2のA1セルに番号を Sheets("Sheet2").Cells(LastRow + 1, 1).Value = LastRow
こういうコードが出来上がったわけですが、
≪Sheet2へデータ≫ の Sheet2 というシートの名前は、本当に Sheet2
なのでしょうか? ということです。
それくらい知ってるわよ。だったら ごめんなさい。
Sheets("Sheet2")というのは、" で囲ってある中がシートの名前ですが、
それは、"Sheet2" と大文字でもだめですし "Sheet 2" と スペースが入っていてもだめです。
そこの確認をお願いします。
Mookさん すみませんでした;;
(sanper)
単純なミスで、シート名にスペースが入っていました。
本当に申し訳ありません。また教えて下さい。。。。
(みゆ・・・)
シート2へデータを転記した際に、自動で一行置きに色がつくにはどうしたらよいでしょうか??
また、シート2のA列には通番が入っていますが、シート1の請求書番号を通番にするにはどうしたらよいですか??ちなみに、シート1のW5に請求書の通番を入れたいです。
(みゆ・・・)
>シート2へデータを転記した際に、自動で一行置きに色がつくには 転記時にマクロで判断して色を付けるなら Sheets("Sheet2").Cells(Rows.Count, 1).End(xlUp) のセルの色を確認して、色が付いていない時に 色を付ける様にします。
色番号や色を付けるコードは、まずはマクロの記録で取得して下さい。 記録で出来たコードをこちらに載せて下さい。
他には、マクロから離れて 条件付書式を事前に設定しておく方法も有ると思います。 一行おきに色を付ける 条件付書式の設定方法は Web検索してもらえると 見つかると思います。
>シート1のW5に請求書の通番を入れたいです 現在、転記時に自動的にA列に番号が振られますが シート1に 先に番号を表示しておきたい と言う事でしょうか?
=MAX(シート2!A:A)+1 なんて式で事が足りますか?
(HANA)
Sub Test1() 'Sheet2の最終行の行番号を取得する変数宣言 Dim LastRow As Long 'Sheet2のA列の最終行の行番号を取得 LastRow = Sheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Row 'Sheet2のA列の最終行セルの背景色が付いていなかどうかを判断し、 '着いていない場合は"ColorIndex ="のとの数字で指定された色をすぐ下の行に着ける If Sheets("Sheet2").Cells(LastRow, 1).Interior.ColorIndex = xlNone Then Rows(LastRow+1 & ":" & LastRow+1).Interior.ColorIndex = 34 End If 'Sheet2のA1セルに番号を Sheets("Sheet2").Cells(LastRow + 1, 1).Value = LastRow ' Sheet2のB2セルにSheet1のW5セルの値を Sheets("Sheet2").Cells(LastRow + 1, 2).Value = Sheets("Sheet1").Range("W5").Value ' Sheet2のC2セルにSheet1のE8セルの値を Sheets("Sheet2").Cells(LastRow + 1, 3).Value = Sheets("Sheet1").Range("E8").Value ' Sheet2のD2セルにSheet1のE9セルの値を Sheets("Sheet2").Cells(LastRow + 1, 4).Value = Sheets("Sheet1").Range("E9").Value ' Sheet2のE2セルにSheet1のW14セルの値を Sheets("Sheet2").Cells(LastRow + 1, 5).Value = Sheets("Sheet1").Range("W14").Value
' Sheet1のA1セル選択 Sheet2を確認後、Sheet1へマクロボタン等の操作で移動するので 'あれば以下は省略 Sheets("Sheet1").Range("A1").Select
End Sub
追加したのは下記の部分です。 >'Sheet2のA列の最終行セルの背景色が付いていなかどうかを判断し、 >'着いていない場合は"ColorIndex ="のとの数字で指定された色をすぐ下の行に着ける > If Sheets("Sheet2").Cells(LastRow, 1).Interior.ColorIndex = xlNone Then > Rows(LastRow+1 & ":" & LastRow+1).Interior.ColorIndex = 34 > End If これでどうでしょうか。
また、 >シート1のW5に請求書の通番を入れたいです とは、シート1のA列の番号とシート1のW5の請求書番号と違う場合があるということ? その場合、シート2に転記されたB列セルの最終番号の次番号が次の入力作業の時にシート1の W5に明示されるということ・・・ ということは、シート1のW5セルに、シート2のB列の最大値+1が表示れているようにするだ から、シート1w5セルに次の関数を入力しておくことで実現できないかな? =MAX(シート2!B:B)+1
(わかあゆ)
Rows(LastRow+1 & ":" & LastRow+1).Interior.ColorIndex = 34の箇所がエラーとなります。
アプリケーション定義またはオブジェクト定義のエラーです。
(みゆ・・・)
> If Sheets("Sheet2").Cells(LastRow, 1).Interior.ColorIndex = xlNone Then > Rows(LastRow+1 & ":" & LastRow+1).Interior.ColorIndex = 34 > End If
の部分を > If Sheets("Sheet2").Cells(LastRow, 1).Interior.ColorIndex = xlNone Then > Sheets("Sheet2").Rows(LastRow+1 & ":" & LastRow+1).Interior.ColorIndex = 34 > End If に変更してみてください。
どうでしょうか?
<追> または、こちらでも Sub Test2() 'Sheet2の最終行の行番号を取得する変数宣言 Dim LastRow As Long 'Sheet2を対象とする作業のまとまりを宣言 With Sheets("Sheet2") 'Sheet2のA列の最終行の行番号を取得 LastRow = .Cells(Rows.Count, 1).End(xlUp).Row 'Sheet2のA列の最終行セルの背景色が付いていなかどうかを判断し、 '着いていない場合は"ColorIndex ="のとの数字で指定された色をすぐ下の行に着ける If .Cells(LastRow, 1).Interior.ColorIndex = xlNone Then .Rows(LastRow + 1 & ":" & LastRow + 1).Interior.ColorIndex = 34 End If 'Sheet2のA1セルに番号を .Cells(LastRow + 1, 1).Value = LastRow ' Sheet2のB2セルにSheet1のW5セルの値を .Cells(LastRow + 1, 2).Value = Sheets("Sheet1").Range("W5").Value ' Sheet2のC2セルにSheet1のE8セルの値を .Cells(LastRow + 1, 3).Value = Sheets("Sheet1").Range("E8").Value ' Sheet2のD2セルにSheet1のE9セルの値を .Cells(LastRow + 1, 4).Value = Sheets("Sheet1").Range("E9").Value ' Sheet2のE2セルにSheet1のW14セルの値を .Cells(LastRow + 1, 5).Value = Sheets("Sheet1").Range("W14").Value 'Sheet2を対象とする作業のまとまり終了を宣言 End With ' Sheet1のA1セル選択 Sheet2を確認後、Sheet1へマクロボタン等の操作で移動するので 'あれば以下は省略 Sheets("Sheet1").Range("A1").Select
End Sub (わかあゆ)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.