社員番号をさがしてその行にデータをコピーしたい | |
---|---|
[195383] 社員番号をさがしてその行にデータをコピーしたい- ■親トピック/記事引用/メール受信=OFF■ □投稿者/ おおねこ -(2022/11/16(01:45)) □U R L/ Sub 保険料転記処理() Dim ws1 As Worksheet, ws2 As Worksheet Dim i As Long Dim v As Variant Application.ScreenUpdating = False Set ws1 = Worksheets("年末調整一覧”) Set ws2 = Worksheets("保険料控除") With ws1 For i = .Cells(.Rows.Count, "A").End(xlUp).Row To 2 Step -1 With ws2 v = Application.Match(.Cells(i, "A"), ws2.Cells(5, "BA"), 0) If IsNumeric(v) Then ws1.Cells(v, "T").Value = .Cells(22, "F").Value ws1.Cells(v, "U").Value = .Cells(24, "F").Value ws1.Cells(v, "V").Value = .Cells(30, "F").Value ws1.Cells(v, "W").Value = .Cells(44, "F").Value ws1.Cells(v, "X").Value = .Cells(51, "F").Value ws1.Cells(v, "AA").Value = .Cells(22, "BA").Value ws1.Cells(v, "AB").Value = .Cells(26, "BA").Value ws1.Cells(v, "H").Value = .Cells(36, "BA").Value End If End With Application.ScreenUpdating = True Next End With End Sub ************************************************************************************************** VBA初心者です ご教授お願いできないでしょうか? 上記のようなコードで年末調整の保険料の計算したものを一覧表に書き出したいのですが うまく動きません。 ※ ワークシートws2の保険料控除の保険料が入っているセルは結合されていて計算式がはいっています。 ※ ワークシートws2 は社員コードがあり、社員コードで紐づけてVLOOKUPで名前、フリガナ、住所などを入力 詳細の保険料などを入力して計算させます。このシートは印刷するためのシートです。 ※ その計算ででた保険控除金額を年末調整の一覧のワークシートWS1の該当する社員番号の新生命保険料、旧生 命保険料にコピー貼り付けしたいのですが Windows11 エクセル2019です よろしくお願いいたします。 ++++++++++++++++++++ OS ⇒OTHER Version⇒OTHER ++++++++++++++++++++ |
[195384] Re[1]: 社員番号をさがしてその行にデータをコピーしたい- ■記事引用/メール受信=OFF■ □投稿者/ 半平太 -(2022/11/16(09:25)) □U R L/ 具体的なサンプルがないので良く分からないですが、 第二引数の範囲指定は正しいのでしょうか? >v = Application.Match(.Cells(i, "A"), ws2.Cells(5, "BA"), 0) ~~~~~~~~~~~~~~~~~ |
[195387] Re[2]: 社員番号をさがしてその行にデータをコピーしたい- ■記事引用/メール受信=OFF■ □投稿者/ おおねこ -(2022/11/16(16:54)) □U R L/ 半平太さま ありがとうございます。 もう少し検証してみます。 |
[195389] Re[3]: 社員番号をさがしてその行にデータをコピーしたい- ■ / 記事引用/メール受信=OFF■ □投稿者/ おおねこ -(2022/11/17(09:46)) □U R L/ Sub 保険料転記処理() Dim ws1 As Worksheet, ws2 As Worksheet Dim i As Long Dim v As Variant Application.ScreenUpdating = False Set ws1 = Worksheets("年末調整") Set ws2 = Worksheets("保険料控除") For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1 With ws1 v = Application.Match(ws2.Cells(5, 53), Range(ws1.Cells(1, 1), ws1.Cells(i, 1)), 0) If IsNumeric(v) Then ws1.Cells(v, 20).Value = ws2.Cells(22, 6).Value ws1.Cells(v, 21).Value = ws2.Cells(24, 6).Value ws1.Cells(v, 22).Value = ws2.Cells(30, 6).Value ws1.Cells(v, 23).Value = ws2.Cells(44, 6).Value ws1.Cells(v, 24).Value = ws2.Cells(51, 6).Value ws1.Cells(v, 27).Value = ws2.Cells(22, 53).Value ws1.Cells(v, 27).Value = ws2.Cells(26, 53).Value ws1.Cells(v, 8).Value = ws2.Cells(36, 53).Value End If End With Application.ScreenUpdating = True Next End Sub コードの数式のところにカーソルを合わせ入っている値を参照していったところMatch関数の範囲指定がうまくいっていませんでした。 半平太様ありがとうございました。 この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 |
このトピックに書きこむ |
---|